UBUNTU-CVE-2026-91776 (CVE-2026-91776)
Vulnerability from osv_ubuntu – Published: 2026-09-23 03:17 – Updated: 2026-09-23 03:17 – Source websiteTypeDeserializerBase._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.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.2.2-1ubuntu0.1~esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:14.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.2.2-1ubuntu0.1~esm1?arch=source\u0026distro=esm-infra-legacy/trusty"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.2.2-1",
"2.2.2-1ubuntu0.1~esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.4.2-3ubuntu0.1~esm2"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:16.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.4.2-3ubuntu0.1~esm2?arch=source\u0026distro=esm-apps/xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.4.2-2",
"2.4.2-3",
"2.4.2-3ubuntu0.1~esm1",
"2.4.2-3ubuntu0.1~esm2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.9.8-1~18.04"
}
]
},
"package": {
"ecosystem": "Ubuntu:18.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.9.8-1~18.04?arch=source\u0026distro=bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.8.6-1",
"2.9.1-1",
"2.9.4-1",
"2.9.5-1",
"2.9.8-1~18.04"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.10.2-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:20.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.10.2-1?arch=source\u0026distro=focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.9.9.3-1",
"2.10.0-2",
"2.10.1-1",
"2.10.2-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.13.0-2"
}
]
},
"package": {
"ecosystem": "Ubuntu:22.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.13.0-2?arch=source\u0026distro=jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.12.1-1",
"2.12.5-1",
"2.13.0-1",
"2.13.0-2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.14.0-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:24.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.14.0-1?arch=source\u0026distro=noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.14.0-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "libjackson2-databind-java",
"binary_version": "2.14.0+ds-1build1"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "jackson-databind",
"purl": "pkg:deb/ubuntu/jackson-databind@2.14.0+ds-1build1?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.14.0+ds-1",
"2.14.0+ds-1build1"
]
}
],
"aliases": [],
"details": "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.",
"id": "UBUNTU-CVE-2026-91776",
"modified": "2026-09-23T03:17:00Z",
"published": "2026-09-23T03:17:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-91776"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-91776"
},
{
"type": "REPORT",
"url": "https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-wv8q-qhhj-9h54"
},
{
"type": "REPORT",
"url": "https://github.com/FasterXML/jackson-databind/pull/6203"
},
{
"type": "REPORT",
"url": "https://github.com/FasterXML/jackson-databind/issues/6203"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-91776"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.