8.1

CVE-2026-54512: jackson-databind: PolymorphicTypeValidator bypass via generic type parameters allows arbitrary class instantiation

Analyzed
AliasesUBUNTU-CVE-2026-54512DEBIAN-CVE-2026-54512CGA-237j-6qxp-r29g
Published 23-06-2026Last modified 24-06-2026

Vulnerability summary

CVE-2026-54512 is a high (CVSS 8.1) Incomplete List of Disallowed Inputs vulnerability in fasterxml jackson-databind. EPSS estimates a 1.07% chance of exploitation in the next 30 days, higher than 64.8% of scored vulnerabilities. 1 public exploit is recorded.

Priority
Prioritisepublic exploit

Public exploit (GitHub, Date unknown)

Source freshness unavailable

How is this decided?
CVSS score
8.1/10
010
High · v3.1 (CVE.org)
EPSS score
1.07%
0%100%
Low · +0.07 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits1github

Advisory lineage

Upstream 0 · Downstream 26 · Related 5

Timeline

  1. 23-06-2026
    PublishedVulnerability first disclosed.
  2. 24-06-2026
    Last modifiedVulnerability information updated.

Description

jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.10.0 until 2.18.8, 2.21.4, and 3.1.4, jackson-databind's PolymorphicTypeValidator (PTV) is the primary safety mechanism guarding polymorphic deserialization. When polymorphic typing is enabled and a type identifier contains generic parameters (i.e. the type ID string contains <), DatabindContext._resolveAndValidateGeneric() validates only the raw container class name (the substring before <) against the configured PTV. If the container type is approved, the method parses the full canonical type string via TypeFactory.constructFromCanonical() and returns the fully parameterized type without ever validating the nested type arguments against the PTV. The nested type arguments are then resolved, instantiated, and populated as beans during deserialization. An attacker who controls the type ID can therefore place a denied class as a generic type parameter of an allowed container — for example java.util.ArrayList<com.evil.Gadget> when only java.util.ArrayList is allow-listed. The container passes the PTV check; com.evil.Gadget is loaded via Class.forName(name, true, loader), instantiated, and its properties are set from attacker-controlled JSON. This completely bypasses an explicitly configured PTV allow-list. This vulnerability is fixed in 2.18.8, 2.21.4, and 3.1.4.

CVSS metrics

7 scores · 7 sources · 1 version

EPSS trend

Probability

1.07%

Chance of exploitation in the next 30 days

Percentile

65%

Versus all other CVEs

30-day change

Increase +0.07 pp

From 1.00% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

1 found
  • githubUnverified

    Jackson Databind

    Maturity: poc

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: network-reachable, no authentication, no user interaction (CVSS vector). Other conditions: not stated in public data.

Chainguard200 products
  • airbyte-server< 2.0.0-r3
  • airbyte-server-fips< 2.0.0-r3
  • airflow-2All versions (No fix recorded)
  • airflow-3< 3.3.0-r3
  • airflow-3-iamguarded-compatAll versions (No fix recorded)

1 vendor · 200 products · Showing 200 of 663

References

10 links