CVE-2026-91776 jackson-databind: unbounded growth of the type id cache in TypeDeserializerBase retains every unknown raw type ID

High 7.5 Published Updated

Attackers can cause memory exhaustion in jackson-databind by supplying unique unknown type IDs when name-based polymorphism with a fallback is enabled.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-91776?

CVE-2026-91776 is a high-severity denial of service vulnerability in FasterXML jackson-databind, published on 23 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

TypeDeserializerBase._findDeserializer() in FasterXML jackson-databind caches the resolved deserializer under the raw, attacker-supplied type ID. When name-based polymorphism is configured with a fallback, for example @JsonTypeInfo(use = Id.NAME, defaultImpl = ...), every distinct unrecognized type ID resolves to the same fallback deserializer but is retained as its own key in the _deserializers map. That map has no configurable bound and lives for the lifetime of the type deserializer, so an attacker who can repeatedly supply fresh unknown type IDs causes monotonic memory retention across requests. The reporter observed 10,000 retained entries from 10,000 distinct unknown IDs, against a single entry for a control that repeated one unknown ID the same number of times, isolating attacker-controlled key cardinality from request volume. Exploitation requires an application that enables name-based polymorphism with a defaultImpl or equivalent fallback, accepts attacker-influenced type IDs, and reuses a long-lived ObjectMapper across requests. The fix stops caching fallback resolutions for unrecognized IDs and bounds both the number of cached entries and the length of a cacheable type ID.

Weakness: CWE-400

Which versions are affected by CVE-2026-91776?

10 open source packages ship an affected version, including com.fasterxml.jackson.core:jackson-databind and tools.jackson.core:jackson-databind.

PackageAffectedFixed in
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.0.02.18.11
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.0.02.18.11
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.19.02.21.7
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.19.02.21.7
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.22.02.22.3
com.fasterxml.jackson.core:jackson-databind MavenFrom 2.22.02.22.3
4 more packages
tools.jackson.core:jackson-databind MavenFrom 3.0.03.1.7
tools.jackson.core:jackson-databind MavenFrom 3.0.03.1.7
tools.jackson.core:jackson-databind MavenFrom 3.2.03.2.3
tools.jackson.core:jackson-databind MavenFrom 3.2.03.2.3

How do I fix CVE-2026-91776?

Upgrade com.fasterxml.jackson.core:jackson-databind to a fixed version for your release line: 2.18.11, 2.21.7 or 2.22.3.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-91776 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-91776 exists.

Sources

Also known as CLEANSTART-2026-AA74935, CLEANSTART-2026-AO45932, CLEANSTART-2026-AT75001, CLEANSTART-2026-AV92018, CLEANSTART-2026-JM36564, CLEANSTART-2026-MO11506 and 104 more.

Is CVE-2026-91776 in your software?

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

Check your SBOMs for free