---
id: CVE-2026-91776
title: >-
  TypeDeserializerBase._findDeserializer() in FasterXML jackson-databind caches
  the resolved deserializer under the raw, attacker-supplied type ID
summary: >-
  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 =…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-400
  - CWE-770
vendor: FasterXML
product: 'com.fasterxml.jackson.core:jackson-databind'
affected:
  - 'com.fasterxml.jackson.core:jackson-databind >= 2.0.0 <= 2.18.10'
  - 'com.fasterxml.jackson.core:jackson-databind >= 2.19.0 <= 2.21.6'
  - 'com.fasterxml.jackson.core:jackson-databind >= 2.22.0 <= 2.22.2'
  - 'tools.jackson.core:jackson-databind >= 3.0.0 <= 3.1.6'
  - 'tools.jackson.core:jackson-databind >= 3.2.0 <= 3.2.2'
published: '2026-09-23'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T20:43:32.537'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-91776'
references:
  - url: 'https://github.com/FasterXML/jackson-databind/issues/6203'
    label: 36c7be3b-2937-45df-85ea-ca7133ea542c
  - url: >-
      https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-wv8q-qhhj-9h54
    label: 36c7be3b-2937-45df-85ea-ca7133ea542c
  - url: >-
      https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-wv8q-qhhj-9h54
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-91776'
  - url: >-
      https://github.com/FasterXML/jackson-databind/commit/2870d1d6dc1b7e1c07ee11dd5b04ab71cddbb577
  - url: >-
      https://github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.18.11
  - url: >-
      https://github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.21.7
  - url: >-
      https://github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-2.22.3
  - url: >-
      https://github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-3.1.7
  - url: >-
      https://github.com/FasterXML/jackson-databind/releases/tag/jackson-databind-3.2.3
  - url: 'https://github.com/advisories/GHSA-wv8q-qhhj-9h54'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-91776.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-91776'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2539083'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-91776'
tags:
  - nvd
  - cve.org
  - exploit-available
  - ghsa
  - maven
  - csaf
  - vex
  - red-hat
epss: 0.00487
epssPercentile: 0.41716
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-09-23T14:02:42.582789Z'
ingestedAt: '2026-09-23T03:16:01.009Z'
aliases:
  - GHSA-wv8q-qhhj-9h54
ecosystem: maven
patched:
  - 'com.fasterxml.jackson.core:jackson-databind 2.18.11'
  - 'com.fasterxml.jackson.core:jackson-databind 2.21.7'
  - 'com.fasterxml.jackson.core:jackson-databind 2.22.3'
  - 'tools.jackson.core:jackson-databind 3.1.7'
  - 'tools.jackson.core:jackson-databind 3.2.3'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-91776)

Affected packages:

- `com.fasterxml.jackson.core:jackson-databind >= 2.0.0, <= 2.18.10`
- `com.fasterxml.jackson.core:jackson-databind >= 2.19.0, <= 2.21.6`
- `com.fasterxml.jackson.core:jackson-databind >= 2.22.0, <= 2.22.2`
- `tools.jackson.core:jackson-databind >= 3.0.0, <= 3.1.6`
- `tools.jackson.core:jackson-databind >= 3.2.0, <= 3.2.2`

Patched in:

- `com.fasterxml.jackson.core:jackson-databind 2.18.11`
- `com.fasterxml.jackson.core:jackson-databind 2.21.7`
- `com.fasterxml.jackson.core:jackson-databind 2.22.3`
- `tools.jackson.core:jackson-databind 3.1.7`
- `tools.jackson.core:jackson-databind 3.2.3`

Source: https://github.com/advisories/GHSA-wv8q-qhhj-9h54

## Vendor advisories

- **Red Hat VEX** · Important · affected: Red Hat build of Quarkus, Exploit Intelligence, OpenShift Developer Tools and Services, OpenShift Serverless, Red Hat AI Inference Server, Red Hat AMQ Broker 7, … · no fix planned: Red Hat build of Quarkus · updated 2026-10-01 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-91776.json)
