GHSA-92vj-hp7m-gwcj Nerdbank.MessagePack has Inefficient CPU Computation
Attackers can cause denial of service via CPU exhaustion by exploiting an inefficient algorithm in the ExpandoObject converter when deserializing untrusted data.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is GHSA-92vj-hp7m-gwcj?
GHSA-92vj-hp7m-gwcj is a denial of service vulnerability in Nerdbank.MessagePack, published on 29 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Impact
Applications that call OptionalConverters.WithExpandoObjectConverter and deserialize untrusted data are open to a vulnerability by which an attacker can exploit a O(n²) algorithm to burn an inordinate amount of CPU effort by adding a great many properties to an ExpandoObject, whose Add method is implemented as an O(n) algorithm.
Patches
Update to a patched version.
If a project's ExpandoObject data requires more than 128 properties, the default limit should be changed:
this.Serializer = this.Serializer with
{
StartingContext = this.Serializer.StartingContext with
{
Security = this.Serializer.StartingContext.Security with
{
ExpandoObjectMaxPropertyCount = 256, // Set this to whatever limit is required by your application
},
},
};
Workarounds
Avoid the non-default WithExpandoObjectConverter extension method when deserializing untrusted data.
If deserializing untrusted data into an ExpandoObject is required, developers should write a custom converter for their project that limits the number of properties allowed before initializing the object.
Which versions are affected by GHSA-92vj-hp7m-gwcj?
2 open source packages ship an affected version, including Nerdbank.MessagePack.
| Package | Affected | Fixed in |
|---|---|---|
Nerdbank.MessagePack NuGet | All versions | 1.2.4 |
Nerdbank.MessagePack NuGet | All versions | 1.2.4 |
How do I fix GHSA-92vj-hp7m-gwcj?
Upgrade Nerdbank.MessagePack to 1.2.4 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is GHSA-92vj-hp7m-gwcj being exploited?
There is no known exploitation of GHSA-92vj-hp7m-gwcj in the wild and no public exploit code.