{"answers":{"affected":"2 open source packages ship an affected version, including Nerdbank.MessagePack.","exploited":"There is no known exploitation of GHSA-92vj-hp7m-gwcj in the wild and no public exploit code.","fix":"Upgrade Nerdbank.MessagePack to 1.2.4 or later.","what":"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."},"fix_prompt":"Check this codebase for GHSA-92vj-hp7m-gwcj and fix it if it is affected.\n\nWhat it is: 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.\nExploitation: There is no known exploitation of GHSA-92vj-hp7m-gwcj in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- Nerdbank.MessagePack (NuGet): affected all versions; fixed in 1.2.4\n- Nerdbank.MessagePack (NuGet): affected all versions; fixed in 1.2.4\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/GHSA-92vj-hp7m-gwcj/ (Markdown: https://insights.sbomify.com/GHSA-92vj-hp7m-gwcj/index.md)","id":"GHSA-92vj-hp7m-gwcj","markdown":"https://insights.sbomify.com/GHSA-92vj-hp7m-gwcj/index.md","name":"GHSA-92vj-hp7m-gwcj","record":{"aliases":[],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["denial_of_service"],"network_reachable":"yes","non_default_config":true,"product_category":"MessagePack serialization library","requires_auth":"none","summary":"Attackers can cause denial of service via CPU exhaustion by exploiting an inefficient algorithm in the ExpandoObject converter when deserializing untrusted data.","user_interaction":"not_required","vuln_class":"denial_of_service"},"analysis_generated_by":"qwen3.8-flash-next","assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"### Impact\n\nApplications 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.\n\n### Patches\n\nUpdate to a patched version.\n\nIf a project's `ExpandoObject` data requires more than 128 properties, the default limit should be changed:\n\n```cs\nthis.Serializer = this.Serializer with\n{\n\tStartingContext = this.Serializer.StartingContext with\n\t{\n\t\tSecurity = this.Serializer.StartingContext.Security with\n\t\t{\n\t\t\tExpandoObjectMaxPropertyCount = 256, // Set this to whatever limit is required by your application\n\t\t},\n\t},\n};\n```\n\n### Workarounds\n\nAvoid the non-default `WithExpandoObjectConverter` extension method when deserializing untrusted data.\nIf 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.","ecosystems":["NuGet"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":true,"headline":"Nerdbank.MessagePack has Inefficient CPU Computation","id":"GHSA-92vj-hp7m-gwcj","indexable":true,"kev":null,"kind":"advisory","links":{"ecosystem":"NuGet","product":null,"products":[],"type":"denial_of_service","year":"2026"},"n_packages":2,"n_references":null,"packages":[{"ecosystem":"NuGet","fixed":["1.2.4"],"introduced":["0"],"last_affected":[],"package":"Nerdbank.MessagePack","purl":null,"source":"GHSA-92vj-hp7m-gwcj"},{"ecosystem":"NuGet","fixed":["1.2.4"],"introduced":["0"],"last_affected":[],"package":"Nerdbank.MessagePack","purl":"pkg:nuget/Nerdbank.MessagePack","source":"GHSA-92vj-hp7m-gwcj"}],"products":null,"published":"2026-05-29","related":[],"sources":[{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":"Attackers can cause denial of service via CPU exhaustion by exploiting an inefficient algorithm in the ExpandoObject converter when deserializing untrusted data.","url":"https://insights.sbomify.com/GHSA-92vj-hp7m-gwcj/"}