Skip to main content

jackson-databind EUVDEUVD-2026-43957

| CVE-2026-59888 MEDIUM
Improperly Controlled Modification of Dynamically-Determined Object Attributes (CWE-915)
2026-07-14 GitHub_M GHSA-3pjw-73gf-8qr5
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Identify HTTP endpoint accepting JSON into a Record
  2. Delivery
    Craft payload with strategy-renamed ignored field key
  3. Exploit
    Submit POST request with crafted JSON body
  4. Execution
    Jackson _renameUsing() bypasses @JsonIgnore check
  5. Persist
    Record constructor receives attacker-controlled value
  6. Impact
    Application logic consumes tainted field

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

Four conditions must all be true simultaneously for exploitation: (1) The application uses jackson-databind in the affected version range (2.15.0-2.18.7, or 2.19.x-2.21.3, or 3.0.x-3.1.3). (2) The deserialization target is a Java Record type - not a regular POJO class; the POJO code path is explicitly confirmed safe in the PR test suite. (3) The Record or its ObjectMapper is configured with a PropertyNamingStrategy (e.g., SnakeCaseStrategy, KebabCaseStrategy) that renames at least one component. (4) At least one Record component subject to that renaming is annotated with @JsonIgnore. The combination of conditions 2-4 is uncommon in older codebases that predate Java 16, but increasingly present in modern Spring Boot 3.x and Quarkus applications that adopt Records for immutable DTOs. Exploitation is limited to the fields actually annotated @JsonIgnore; non-ignored fields are unaffected. There is no required authentication barrier on the attacker's side - any entity that can submit JSON to a vulnerable deserialization endpoint can attempt the bypass.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N, score 6.5) assigns low complexity and no authentication, which is accurate from the attacker's perspective - crafting a JSON payload with a renamed field requires no special tooling or privilege. However, the real-world exploitability is meaningfully constrained by four simultaneous code-level prerequisites (see exploitation_conditions), which substantially reduce the population of vulnerable endpoints. No EPSS value was provided in the input, so exploitation probability cannot be quantified. The vulnerability is not listed in the CISA KEV catalog, and no dedicated public exploit tool has been identified, though the PR test suite constitutes a functional proof of concept. The integrity signal is worth highlighting: the canonical example in the PR test injects the string 'ADMIN' into an 'internalRole' Record field that was explicitly marked @JsonIgnore - in applications where such fields gate authorization decisions, the practical impact escalates well beyond what the 'I:L' base metric suggests. Security teams should treat this as medium-priority with elevated urgency for any Java service that (a) deserializes external JSON into Records, (b) applies a naming strategy, and (c) uses @JsonIgnore to exclude privilege- or security-relevant fields.

Exploit ScenarioDerived

An attacker submits a POST request containing JSON payload '{"username":"alice","internal_role":"ADMIN"}' to a REST endpoint that deserializes the body into a Java Record annotated with @JsonNaming(SnakeCaseStrategy.class), where the 'internalRole' component is marked @JsonIgnore. The application's authorization logic subsequently reads 'internalRole' from the deserialized Record object and grants elevated privileges, believing the field cannot be externally supplied. The upstream PR test (RecordIgnoreNamingStrategy5974Test.testRenamedIgnoredRecordComponentBypass) demonstrates this exact flow and constitutes a functional proof of concept.

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

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

Alert me

AnalysisAIv1 – Jul 14, 2026

Deserialization logic in FasterXML jackson-databind 2.15.0 through 2.18.7, 2.21.3, and 3.1.3 allows unauthenticated remote callers to bypass @JsonIgnore annotations on Java Record types when a PropertyNamingStrategy is configured. The renamed JSON key - e.g., 'internal_role' produced by SnakeCaseStrategy from 'internalRole' - is not registered in the ignore list, so Jackson's constructor-parameter binding accepts the attacker-supplied value despite the developer's explicit exclusion directive. No public exploit tooling has been identified at time of analysis, but the upstream fix PR includes a runnable proof-of-concept test that fully demonstrates the bypass, lowering the bar for independent reproduction.

RemediationAI

Upgrade jackson-databind to version 2.18.8, 2.21.4, or 3.1.4 as appropriate for the branch in use - these are the confirmed fix versions per the upstream GitHub advisory (https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-3pjw-73gf-8qr5) and the merged PR (https://github.com/FasterXML/jackson-databind/pull/5974). The fix is surgical - a null-check and a single _collectIgnorals() call in _renameUsing() - so upgrading is low-risk. For teams unable to patch immediately, a targeted workaround is to replace Java Record types that carry @JsonIgnore fields with standard POJO classes (annotated with @JsonProperty explicitly), since the POJO deserialization path correctly drops ignored properties before renaming runs and is not affected by this bug. A second workaround is to remove the PropertyNamingStrategy from the ObjectMapper or the affected class and instead use explicit @JsonProperty annotations for field name mapping; this eliminates the renaming step that triggers the bypass, at the cost of more verbose annotations. Do not rely on schema validation or upstream API gateways as the sole mitigation, as JSON field name filtering at the gateway layer would need to account for strategy-renamed names and is fragile.

Affected VersionsENISA

jackson-databind 2.15.0, < 2.18.8
jackson-databind 2.19.0, < 2.21.4
jackson-databind 3.0.0, < 3.1.4

Affected Packages

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

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 5 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 (CPE: cpe:2.3:a:fasterxml:jackson-databind:*:*:*:*:*:*:*:*) is the dominant JSON serialization library for the Java ecosystem, used pervasively in Spring Boot, Quarkus, Dropwizard, and similar frameworks. The flaw resides in POJOPropertiesCollector, specifically the interaction between _removeUnwantedIgnorals() and _renameUsing(). For standard POJO classes, Jackson removes @JsonIgnore-marked properties from the property map before renaming runs, so the order is inconsequential. For Java Records (available since Java 16 as a stable feature), the ignore registration happens by recording the component's implicit name - the camelCase field name - into _ignoredPropertyNames. When _renameUsing() subsequently applies a PropertyNamingStrategy, it produces a new string key (e.g., 'internal_role') but never propagates the ignore status to that new key. The fix in commit baa2cdf5/c7c67836 adds a check inside _renameUsing() that detects when an original name is in _ignoredPropertyNames and immediately adds the renamed key to the ignored set via _collectIgnorals(). CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes) captures the root cause class: the framework's dynamic attribute-binding logic fails to honour an exclusion constraint when attribute names are transformed.

Know when Java 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_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 6.5 MEDIUM

Network vector and no privileges required because attacker only needs to submit JSON to an exposed endpoint; AC:L because no per-request complexity is needed once the target endpoint is identified, despite the code-level prerequisites on the server side.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Jul 14, 2026 - 23:21 EUVD
CVE Published
Jul 14, 2026 - 16:44 cve.org
MEDIUM 6.5

DescriptionCVE.org

jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.15.0 until 2.18.8, 2.21.4, and 3.1.4, Java Records using a PropertyNamingStrategy can bypass @JsonIgnore because POJOPropertiesCollector._removeUnwantedIgnorals() records an ignored component under its original implicit name before _renameUsing() applies the naming strategy, allowing the renamed JSON key to be assigned to the Record constructor parameter. This issue is fixed in versions 2.18.8, 2.21.4, and 3.1.4.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 6,445 maven packages depend on com.fasterxml.jackson.core:jackson-databind (1,785 direct, 4,669 indirect)
  • 378 maven packages depend on tools.jackson.core:jackson-databind (107 direct, 271 indirect)

Ecosystem-wide dependent count for version 2.15.0 and other introduced versions.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Ubiquitous
most-downloaded Java JSON library, core dependency of Spring Boot ecosystem
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor 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.2%
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

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Module for Basesystem 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected

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