CVE-2026-54512: CWE-184: Incomplete List of Disallowed Inputs in FasterXML jackson-databind
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.
AI Analysis
Technical Summary
jackson-databind versions 2.10.0 through 2.18.7, 2.18.0 through 2.21.3, and 3.0.0 through 3.1.3 contain a vulnerability in the PolymorphicTypeValidator (PTV) mechanism. When polymorphic typing is enabled and the type identifier includes generic parameters, the validator only checks the raw container class name, ignoring nested generic type arguments. This allows an attacker controlling the type ID string to specify a denied class as a generic parameter inside an allowed container class, bypassing the PTV allow-list. The denied class is then instantiated and populated from attacker-controlled JSON, enabling potential remote code execution or other impacts. The vulnerability is addressed in jackson-databind versions 2.18.8, 2.21.4, and 3.1.4.
Potential Impact
Successful exploitation allows an attacker to bypass the PolymorphicTypeValidator allow-list and instantiate arbitrary classes during deserialization, potentially leading to remote code execution, data corruption, or denial of service. The vulnerability affects confidentiality, integrity, and availability as indicated by the CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H).
Mitigation Recommendations
This vulnerability is fixed in jackson-databind versions 2.18.8, 2.21.4, and 3.1.4. Users should upgrade to one of these versions or later to remediate the issue. No official temporary fixes or workarounds are provided. Patch status is confirmed by the vendor advisory. Users should verify upgrade paths and test accordingly.
CVE-2026-54512: CWE-184: Incomplete List of Disallowed Inputs in FasterXML jackson-databind
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 v3.1
Score 8.1high
Affected software
pkg:maven/com.fasterxml.jackson.core/jackson-databindRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
jackson-databind versions 2.10.0 through 2.18.7, 2.18.0 through 2.21.3, and 3.0.0 through 3.1.3 contain a vulnerability in the PolymorphicTypeValidator (PTV) mechanism. When polymorphic typing is enabled and the type identifier includes generic parameters, the validator only checks the raw container class name, ignoring nested generic type arguments. This allows an attacker controlling the type ID string to specify a denied class as a generic parameter inside an allowed container class, bypassing the PTV allow-list. The denied class is then instantiated and populated from attacker-controlled JSON, enabling potential remote code execution or other impacts. The vulnerability is addressed in jackson-databind versions 2.18.8, 2.21.4, and 3.1.4.
Potential Impact
Successful exploitation allows an attacker to bypass the PolymorphicTypeValidator allow-list and instantiate arbitrary classes during deserialization, potentially leading to remote code execution, data corruption, or denial of service. The vulnerability affects confidentiality, integrity, and availability as indicated by the CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H).
Mitigation Recommendations
This vulnerability is fixed in jackson-databind versions 2.18.8, 2.21.4, and 3.1.4. Users should upgrade to one of these versions or later to remediate the issue. No official temporary fixes or workarounds are provided. Patch status is confirmed by the vendor advisory. Users should verify upgrade paths and test accordingly.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-06-15T18:01:15.513Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a3af602eed863c81e9ec628
Added to database: 06/23/2026, 21:09:22 UTC
Last enriched: 06/30/2026, 23:17:19 UTC
Last updated: 08/07/2026, 12:41:12 UTC
Views: 94
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.