Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify JSON deserialization endpoint accepting user input
-
DeliveryDiscover POJO with @JsonProperty getter + @JsonIgnore setter annotation pattern
-
ExploitCraft JSON payload using the renamed property key
-
ExecutionSubmit payload to endpoint
-
Persist_renameProperties() retains inferred FieldProperty for private backing field
-
ImpactAttacker value written directly to private field, bypassing @JsonIgnore
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V4 - API and Web Service Object attribute protection
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) The target application uses jackson-databind 2.21.0-2.21.3 or 3.0.0-3.1.3 to deserialize user-controlled JSON input. (2) A POJO in the deserialization path must have a getter annotated with @JsonProperty('someRenamedName') paired with a setter annotated with @JsonIgnore on the same property - this is the specific read-only-over-the-wire annotation pattern. (3) MapperFeature.INFER_PROPERTY_MUTATORS must be enabled, which is the default configuration; no deliberate opt-in is required unless the application has explicitly disabled it. What limits exploitation: if none of the application's POJOs use this exact annotation combination, the vulnerability is not triggerable regardless of library version; if the affected POJOs back fields that carry no security-sensitive data, impact is negligible; applications that have explicitly disabled INFER_PROPERTY_MUTATORS are not affected. Authentication requirements depend entirely on whether the consuming endpoint requires authentication at the application layer - the vulnerability itself operates post-deserialization and imposes no authentication prerequisite (CVSS PR:N). |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N, score 5.3 Medium) accurately reflects the network-reachable, zero-privilege nature of the attack surface but is contingent on an application-level prerequisite: the target POJO must use the specific @JsonProperty-on-getter plus @JsonIgnore-on-setter annotation combination. This is not a default or universal configuration - it is a deliberate developer pattern - so real-world exploitability is narrower than the CVSS AC:L suggests for a generic endpoint. No EPSS score was provided in the source data; given the non-universal prerequisite and absence of active exploitation signals, real-world exploitation probability is likely low at time of analysis. The vulnerability is NOT in the CISA KEV catalog and no standalone proof-of-concept exploit has been identified - only fix commits and regression test cases are publicly available. The maintainer's own characterization ('minor') aligns with the bounded impact: no RCE, no confidentiality loss, no general gadget chain - only targeted field-value tampering in applications that happen to use the affected annotation pattern. The reporter's HIGH assessment likely reflects worst-case scenarios where the bypassed field controls security-sensitive state (e.g., admin flags, ACL values). Organizations should assess whether their POJOs use this annotation pattern and whether any bypassed fields carry security significance. |
| Exploit ScenarioDerived | An attacker targeting a Java application with a REST endpoint that deserializes user-supplied JSON into a POJO - where that POJO uses @JsonProperty('renamedProp') on a getter and @JsonIgnore on the setter to expose a field as serialization-only - submits a crafted POST body containing the key 'renamedProp' with an attacker-chosen value. Jackson's _renameProperties() retains the private backing field as writable, causing BeanDeserializerFactory to build a FieldProperty and write the attacker's value directly into the private field, bypassing the developer's intended read-only enforcement. No proof-of-concept exploit code has been identified; however, the fix commits include regression tests that effectively document the triggering conditions. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 23, 2026
Integrity bypass in jackson-databind 2.21.0-2.21.3 and 3.0.0-3.1.3 allows unauthenticated network attackers to write to private backing fields that application developers intended as read-only. The flaw occurs when a POJO uses @JsonProperty on a getter with @JsonIgnore on the setter - a common read-only-over-the-wire pattern - and MapperFeature.INFER_PROPERTY_MUTATORS is enabled (the default). No public exploit code has been identified at time of analysis, and the vulnerability is not listed in the CISA KEV catalog. The GHSA advisory characterizes the impact as property tampering and mass assignment; maintainers rate it minor despite a reporter-assessed HIGH severity.
RemediationAI
Upgrade jackson-databind to 2.21.4 (for the 2.21.x line) or 3.1.4 (for the 3.x line), as confirmed by GHSA-9fxm-vc8v-hj55 and the upstream commit history (commits c3d56dd and e88cb17). Maven coordinates are com.fasterxml.jackson.core:jackson-databind:2.21.4 and com.fasterxml.jackson.core:jackson-databind:3.1.4 respectively. If patching immediately is not feasible, the most targeted compensating control is to explicitly disable MapperFeature.INFER_PROPERTY_MUTATORS on ObjectMapper instances (mapper.disable(MapperFeature.INFER_PROPERTY_MUTATORS)); note that this may alter deserialization behavior for other POJOs relying on inferred field mutators and should be tested for regressions. Alternatively, replace the @JsonProperty-on-getter plus @JsonIgnore-on-setter pattern with @JsonProperty(access = JsonProperty.Access.READ_ONLY) on the getter, which takes a different code path not affected by this bug. Input filtering at the API boundary for the renamed JSON key provides defense-in-depth but is brittle and not a reliable primary control. The advisory and fix PRs are at https://github.com/FasterXML/jackson-databind/pull/5967 and https://github.com/FasterXML/jackson-databind/pull/5968.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
jackson-databind (Maven coordinates com.fasterxml.jackson.core:jackson-databind and tools.jackson.core:jackson-databind for the 3.x line) is the core data-binding layer of the widely used Jackson JSON processor for Java/JVM. The root cause is CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes), commonly called mass assignment. The logic error is in POJOPropertiesCollector._renameProperties(): when a getter carries @JsonProperty('renamed') and its paired setter carries @JsonIgnore, the renaming step should drop the property from deserialization eligibility entirely. Instead, because couldDeserialize() returns false only on the setter, the private backing field remains eligible via MapperFeature.INFER_PROPERTY_MUTATORS (enabled by default since Jackson 2.x). BeanDeserializerFactory.addBeanProps() subsequently detects hasField()==true, constructs a FieldProperty for that private field, and registers it as writable. The fix - adding prop.removeFields() in _renameProperties() for properties whose renamed-but-ignored setter left an inferred field mutator - was applied in commits c3d56dd (2.21.4 backport, PR #5968) and e88cb17 (3.1.4, PR #5967).
Know when Jackson Databind gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Network-reachable via JSON endpoint, no privileges required, limited integrity impact only; no confidentiality or availability consequence per advisory.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
1DescriptionCVE.org
jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.21.0 until 2.21.4 and 3.1.4, POJOPropertiesCollector._renameProperties() allows a property with @JsonProperty("renamed") on the getter and @JsonIgnore on the setter to be renamed rather than dropped. With MapperFeature.INFER_PROPERTY_MUTATORS enabled (default), the private backing field is retained; during deserialization BeanDeserializerFactory.addBeanProps() sees hasField()==true, builds a FieldProperty, and makes the backing field writable. An attacker supplying the renamed JSON key writes the backing field directly, bypassing the @JsonIgnore on the setter. This vulnerability is fixed in 3.1.4.
Blast Radius
ecosystem impact- 5,259 maven packages depend on com.fasterxml.jackson.core:jackson-databind (1,718 direct, 3,598 indirect)
- 377 maven packages depend on tools.jackson.core:jackson-databind (107 direct, 270 indirect)
Ecosystem-wide dependent count for version 2.21.0 and other introduced versions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
More in Jackson Databind
View allFasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela
FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela
FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela
FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela
A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.x before 2.9.9. Rated high severity (CVSS 7.5)
FasterXML jackson-databind 2.0.0 through 2.9.10.2 lacks certain xbean-reflect/JNDI blocking, as demonstrated by org.apac
A flaw was found in FasterXML Jackson Databind, where it did not have entity expansion secured properly. Rated high seve
FasterXML jackson-databind 2.x before 2.9.9.1 might allow attackers to have a variety of impacts by leveraging failure t
FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela
FasterXML jackson-databind before 2.7.9.3, 2.8.x before 2.8.11.1 and 2.9.x before 2.9.5 allows unauthenticated remote co
FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela
FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela
EUVD-2026-38590
GHSA-9fxm-vc8v-hj55
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB