Skip to main content

jackson-databind EUVDEUVD-2026-38589

| CVE-2026-54517 MEDIUM
Incorrect Authorization (CWE-863)
2026-06-23 security-advisories@github.com GHSA-5hh8-q8hv-fr38
5.3
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Submit crafted JSON with restricted collection field to API endpoint
  2. Delivery
    Force property-buffering path via @JsonCreator deserialization trigger
  3. Exploit
    Bypass missing visibleInView check in unguarded buffering branch
  4. Execution
    Populate admin-restricted setterless collection with attacker values
  5. Impact
    Achieve unauthorized data write or privilege escalation in application object model

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires three simultaneous application-level conditions: (1) the target class uses a @JsonCreator constructor, which activates the property-based deserialization path in BeanDeserializer._deserializeUsingPropertyBased; (2) the class contains at least one setterless Collection or Map property - a field with no setter, only a getter returning a mutable collection - annotated with a @JsonView that restricts it to a more-privileged view (e.g., AdminView); and (3) the application invokes the ObjectMapper with a less-privileged active view (e.g., readerWithView(PublicView.class)) and relies on that view filter to prevent the restricted field from being written. The CVSS PR:N vector indicates no jackson-databind-level authentication is required, but real-world exploitation depends on the attacker being able to reach the deserialization endpoint and supply arbitrary JSON content. Exploitation is not possible if: the target class has no @JsonCreator constructor; no setterless collection or map fields carry @JsonView security restrictions; or the application enforces access control outside of @JsonView (e.g., explicit field whitelisting, DTO separation, service-layer authorization). The vulnerability does not affect standard setter-based properties or classes without @JsonCreator.

Impact

CVSS 3.1 rates this 5.3 Medium with AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N, but the AC:L rating warrants scrutiny: exploitation requires the simultaneous presence of a @JsonCreator constructor, at least one setterless Collection/Map property, and application reliance on @JsonView for security enforcement - a specific combination that is common in layered REST APIs but not universal. The CVSS I:L designation understates impact for applications where @JsonView is the primary authorization boundary on mutable fields, since the bypass is complete for any property routed through the unguarded path. No public exploit code exists and CISA KEV does not list this CVE, indicating no confirmed mass exploitation. EPSS data was not supplied; given the narrow exploitation preconditions, automated widespread exploitation is assessed as unlikely. For applications not using @JsonView as a security control, risk is effectively zero - the vulnerability has no RCE, no DoS, and no confidentiality impact. The realistic priority is highest for services where role, permission, or privilege fields are setterless collections gated by view annotations, especially where client-supplied JSON reaches the deserializer without prior field filtering.

Exploit ScenarioDerived

An attacker targets a REST endpoint that deserializes client-supplied JSON into a class with a @JsonCreator constructor, where a roles or permissions field is a setterless List annotated @JsonView(AdminView.class) and the endpoint operates under PublicView. By submitting JSON containing "roles":["admin"] - particularly placing it before the creator property to force the buffering path - the attacker's value is written into the roles collection despite the PublicView restriction, achieving unauthorized privilege escalation within the deserialized object. The in-tree regression test SetterlessViewBypass5969Test.java (added in the fix commit) demonstrates this exact sequence, covering both field-ordering variants (roles before and after the creator property).

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 – Jun 23, 2026

@JsonView access-control bypass in jackson-databind 2.21.0-2.21.3 and 3.0.0-3.1.3 allows remote attackers to write values into setterless Collection/Map properties that are restricted by a @JsonView annotation, defeating view-based mass-assignment protection during deserialization. The regression was introduced when SetterlessProperty.isMerging() was changed to return true, routing these properties through an unguarded buffering branch in BeanDeserializer._deserializeUsingPropertyBased that lacked the prop.visibleInView(activeView) check applied to creator properties. No public exploit code has been identified and this is not listed in CISA KEV; however, applications relying on @JsonView for security-critical field-level access control - such as role or permission gating - are directly and completely bypassed.

RemediationAI

Upgrade jackson-databind to version 2.21.4 (for 2.21.x users) or 3.1.4 (for 3.x users); both are confirmed patched releases per GHSA advisory GHSA-5hh8-q8hv-fr38 at https://github.com/FasterXML/jackson-databind/security/advisories/GHSA-5hh8-q8hv-fr38. The upstream patch is a targeted one-line guard inserted into BeanDeserializer._deserializeUsingPropertyBased that skips and discards buffered properties not visible in the active view (commits 5bf23ed and 94c5d21 for the respective lines). If immediate library upgrade is not feasible, two compensating controls are available: first, replace @JsonView-based access control on setterless collection/map fields with explicit server-side DTO mapping or separate input/output model classes - this eliminates the security dependency on the flawed code path at the cost of additional model classes; second, enforce field-level authorization in service or controller logic independently of Jackson deserialization, so that even if restricted fields are populated by Jackson, the application layer discards or rejects them before use. Neither workaround is preferred over patching; both add maintenance burden and do not fix the underlying library defect.

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: com.fasterxml.jackson.core:jackson-databind and tools.jackson.core:jackson-databind) is the core deserialization engine of the Jackson JSON processing stack, embedded in Spring, Quarkus, Dropwizard, and virtually every Java REST framework. The root cause is CWE-863 (Incorrect Authorization), with the related weakness CWE-1220 (Insufficient Granularity of Access Control) applying because the view filter was enforced on one code path but omitted from another. During property-based deserialization - triggered whenever a class uses a @JsonCreator constructor - BeanDeserializer._deserializeUsingPropertyBased buffers non-creator properties in a staging structure until the creator can be invoked. Before the fix, the view-exclusion guard (prop.visibleInView(activeView)) was present for creator properties but absent for the regular buffering branch. A separate upstream change that made SetterlessProperty.isMerging() return true enrolled setterless Collection/Map accessors into this unguarded buffering path, creating the vulnerability. The fix (commits 5bf23ed for 3.x, 94c5d21 for 2.21.x) inserts the missing visibleInView check immediately before the buffering step. CPE: cpe:2.3:a:fasterxml:jackson-databind:*:*:*:*:*:*:*:* spanning versions 2.21.0-2.21.3 and 3.0.0-3.1.3.

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 3.7 LOW

AC:H because exploitation requires three concurrent non-default application conditions: @JsonCreator constructor, setterless collection/map with @JsonView restriction, and view used as a security boundary.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/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, in BeanDeserializer._deserializeUsingPropertyBased, the active-view (@JsonView) filter was applied only to creator properties; the regular property-buffering branch performed no prop.visibleInView(activeView) check. A change making SetterlessProperty.isMerging() return true routed setterless Collection/Map properties through this unguarded path, so a setterless collection annotated with a restricted @JsonView is populated from attacker JSON even when the active view excludes it. This vulnerability is fixed in 2.21.4 and 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.2%
Top 85% exploitable
Prevalence
High
one of the most downloaded Java libraries globally
Threat Intel
1
1 source
Data Quality
8 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

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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.

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