GHSA-92vj-hp7m-gwcj Nerdbank.MessagePack has Inefficient CPU Computation

Not scored Published

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.

PackageAffectedFixed in
Nerdbank.MessagePack NuGetAll versions1.2.4
Nerdbank.MessagePack NuGetAll versions1.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.

Sources

Is GHSA-92vj-hp7m-gwcj in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free