Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted JSON with restricted collection field to API endpoint
-
DeliveryForce property-buffering path via @JsonCreator deserialization trigger
-
ExploitBypass missing visibleInView check in unguarded buffering branch
-
ExecutionPopulate admin-restricted setterless collection with attacker values
-
ImpactAchieve 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). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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: 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
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.
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, 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- 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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-38589
GHSA-5hh8-q8hv-fr38
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB