GHSA-rmj7-2vxq-3g9f CVE-2026-54513
jackson-databind has an array subtype allowlist bypass in BasicPolymorphicTypeValidator (allowIfSubTypeIsArray)
- Severity
- 8.1 / 10
- High · CVSS 3.1
- Exploit chance (EPSS)
- 1.23%
- Chance of exploitation in the next 30 days. Higher than 68.84% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-184 Incomplete List of Disallowed Inputs
- Fix
- Available
- 2 packages have a fixed version
Description
Summary
BasicPolymorphicTypeValidator.Builder.allowIfSubTypeIsArray() allowlists any array type based only on clazz.isArray(), without validating the array's component (element) type against the configured allowlist. A PTV built with allowIfSubTypeIsArray() plus an explicit concrete-type allowlist therefore still permits EvilType[] even though EvilType is not allowlisted. When Jackson deserializes the elements and no per-element type IDs are present, it instantiates the component type directly with no further PTV check, bypassing the allowlist.
Impact
Applications using BasicPolymorphicTypeValidator with allowIfSubTypeIsArray() as a safeguard get no protection for concrete array component types; an attacker controlling JSON can instantiate non-allowlisted types via an array wrapper, re-opening the gadget-instantiation risk PTV is meant to prevent.
Affected / Patched (verified via git tag --contains)
- 2.18 line:
>= 2.10.0, < 2.18.8-> fixed in 2.18.8 - 2.19-2.21 line:
>= 2.19.0, < 2.21.4-> fixed in 2.21.4 - 3.x line:
>= 3.0.0, < 3.1.4-> fixed in 3.1.4
PolymorphicTypeValidator was added in 2.10.0 so vulnerability N/A for versions prior to that.
Severity / CWE
Maintainer: significant. Reporter: HIGH. CWE-184 (Incomplete List of Disallowed Inputs); related CWE-502.
Upstream fix
FasterXML/jackson-databind#5981; fix PR #5983 (24529da), 2.18 backport PR #5984 (01d1692). Released 2026-06-04 in 2.18.8 / 2.21.4 / 3.1.4.
Credits
Omkhar Arasaratnam (@omkhar) - finder.
Affected versions
Maven
| Package | Vulnerable | Fixed in |
|---|---|---|
| com.fasterxml.jackson.core:jackson-databind | >= 2.10.0, < 2.18.8 |
2.18.8 |
| com.fasterxml.jackson.core:jackson-databind | >= 2.19.0, < 2.21.4 |
2.21.4 |
| com.fasterxml.jackson.core:jackson-databind | >= 3.0.0, < 3.1.4 |
3.1.4 |
| tools.jackson.core:jackson-databind | >= 3.0.0, < 3.1.4 |
3.1.4 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
com.fasterxml.jackson.core:jackson-databind Maven → 2.18.8
- maven
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.18.8</version></dependency>- gradle
implementation("com.fasterxml.jackson.core:jackson-databind:2.18.8")
tools.jackson.core:jackson-databind Maven → 3.1.4
- maven
<dependency><groupId>tools.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>3.1.4</version></dependency>- gradle
implementation("tools.jackson.core:jackson-databind:3.1.4")
Severity breakdown
CVSS 3.1 8.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack vector
- Network
- Attack complexity
- High
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Weakness
CWE-184: Incomplete List of Disallowed Inputs
The product implements a protection mechanism that relies on a list of inputs (or properties of inputs) that are not allowed by policy or otherwise require other action to neutralize before additional processing takes place, but the list is incomplete.
How to prevent it
- Implementation: Do not rely exclusively on detecting disallowed inputs. There are too many variants to encode a character, especially when different environments are used, so there is a high likelihood of missing some variants. Only use detection of disallowed inputs as a mechanism for detecting suspicious activity. Ensure that you are using other protection mechanisms that only identify "good" input - such as lists of allowed inputs - and ensure that you are properly encoding your outputs.
References
Advisories
Packages
Other links
- github.com/FasterXML/jackson-databind/security/advisories/GHSA-rmj7-2vxq-3g9f
- github.com/FasterXML/jackson-databind/issues/5983
- github.com/FasterXML/jackson-databind/issues/5981
- github.com/FasterXML/jackson-databind/pull/5984
- github.com/FasterXML/jackson-databind/commit/24529da29fdf46ff94ca38de9ebf31cd18…
- github.com/FasterXML/jackson-databind/commit/01d1692c8d0ed03e51a0e3c4f8a9e6908e…
- access.redhat.com/errata/RHSA-2026:50849
- access.redhat.com/errata/RHSA-2026:54435
- access.redhat.com/errata/RHSA-2026:54622
- access.redhat.com/errata/RHSA-2026:62260
- access.redhat.com/errata/RHSA-2026:66488
- access.redhat.com/errata/RHSA-2026:66545
- access.redhat.com/security/cve/CVE-2026-54513
- bugzilla.redhat.com/show_bug.cgi
- security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-54513.json
- access.redhat.com/errata/RHSA-2026:36839
- access.redhat.com/errata/RHSA-2026:40895
- access.redhat.com/errata/RHSA-2026:41951
- access.redhat.com/errata/RHSA-2026:43218
- access.redhat.com/errata/RHSA-2026:43400
- access.redhat.com/errata/RHSA-2026:44061
- access.redhat.com/errata/RHSA-2026:44062
- access.redhat.com/errata/RHSA-2026:44063
- access.redhat.com/errata/RHSA-2026:44064
- access.redhat.com/errata/RHSA-2026:44065
- access.redhat.com/errata/RHSA-2026:44066
- access.redhat.com/errata/RHSA-2026:44271
- access.redhat.com/errata/RHSA-2026:48095
- access.redhat.com/errata/RHSA-2026:48151
- access.redhat.com/errata/RHSA-2026:50846
- access.redhat.com/errata/RHSA-2026:50847
- access.redhat.com/errata/RHSA-2026:50848
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-cxp5-3px4-pw24 jackson-databind quadratic forward-reference completion | High | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-wv8q-qhhj-9h54 jackson-databind retains every unknown raw type ID | High | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-q4xh-88c3-wmh7 jackson-databind: Duration XMLGregorianCalendar Unbounded Number Parse DoS | High | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-gx83-3vf8-gh7j jackson-databind: Comparable missing from DefaultBaseTypeLimitingValidator's unsafe base types (incomplete PolymorphicTypeValidator denylist) | Medium | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-wjgm-6hv5-3cvf jackson-databind: Path Deserialization Missing Scheme Allowlist for FileSystemProvider Resolution | Medium | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-vvgp-rfg2-7rr6 jackson-databind: Incomplete fix for CVE-2026-54514: eager DNS resolution (SSRF) still present in InetAddress deserialization | Medium | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-mhm7-754m-9p8w jackson-databind: `@JsonView` bypass for creator properties with `@JsonTypeInfo(include=As.EXTERNAL_PROPERTY)` | Medium | Also affects com.fasterxml.jackson.core:jackson-databind |
| GHSA-5gvw-p9qm-jgwh jackson-databind: @JsonView bypassed for @JsonUnwrapped container properties on deserialization | Medium | Also affects com.fasterxml.jackson.core:jackson-databind |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor