Skip to main content

jackson-databind CVE-2026-54516

| EUVDEUVD-2026-38590 MEDIUM
Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915)
2026-06-23 security-advisories@github.com GHSA-9fxm-vc8v-hj55
5.3
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify JSON deserialization endpoint accepting user input
  2. Delivery
    Discover POJO with @JsonProperty getter + @JsonIgnore setter annotation pattern
  3. Exploit
    Craft JSON payload using the renamed property key
  4. Execution
    Submit payload to endpoint
  5. Persist
    _renameProperties() retains inferred FieldProperty for private backing field
  6. Impact
    Attacker 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

jackson-databind 2.21.0, < 2.21.4
jackson-databind 3.0.0, < 3.1.4

Affected Packages

maven com.fasterxml.jackson.core:jackson-databind fix: 2.21.4, 3.1.4
maven tools.jackson.core:jackson-databind fix: 3.1.4
euvd jackson_databind_2_21_0 fix: 2.21.4
euvd jackson_databind_3_0_0 fix: 3.1.4

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

Vendor (github) PRIMARY 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 5.3 MEDIUM

Network-reachable via JSON endpoint, no privileges required, limited integrity impact only; no confidentiality or availability consequence per advisory.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Jun 23, 2026 - 22:02 EUVD

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

EPSS Score
0.3%
Top 80% exploitable
Prevalence
High
one of the most downloaded Java libraries on Maven Central
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
High
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2020-11113 HIGH
8.8 Mar 31

FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela

CVE-2020-9547 CRITICAL POC
9.8 Mar 02

FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela

CVE-2020-9548 CRITICAL POC
9.8 Mar 02

FasterXML jackson-databind 2.x before 2.9.10.4 mishandles the interaction between serialization gadgets and typing, rela

CVE-2020-35728 HIGH
8.1 Dec 27

FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela

CVE-2019-12086 HIGH POC
7.5 May 17

A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.x before 2.9.9. Rated high severity (CVSS 7.5)

CVE-2020-8840 CRITICAL
9.8 Feb 10

FasterXML jackson-databind 2.0.0 through 2.9.10.2 lacks certain xbean-reflect/JNDI blocking, as demonstrated by org.apac

CVE-2020-25649 HIGH POC
7.5 Dec 03

A flaw was found in FasterXML Jackson Databind, where it did not have entity expansion secured properly. Rated high seve

CVE-2019-12384 MEDIUM
5.9 Jun 24

FasterXML jackson-databind 2.x before 2.9.9.1 might allow attackers to have a variety of impacts by leveraging failure t

CVE-2020-35491 HIGH POC
8.1 Dec 17

FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela

CVE-2018-7489 CRITICAL
9.8 Feb 26

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

CVE-2020-35490 HIGH POC
8.1 Dec 17

FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela

CVE-2020-36183 HIGH POC
8.1 Jan 07

FasterXML jackson-databind 2.x before 2.9.10.8 mishandles the interaction between serialization gadgets and typing, rela

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy