CVE-2026-54513: jackson-databind: Array subtype allowlist bypass in BasicPolymorphicTypeValidator (allowIfSubTypeIsArray)

Published Jun 23, 2026
·
Updated

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.

Other sources

jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.10.0 until 2.18.8, 2.21.4, and 3.1.4, 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. This vulnerability is fixed in 2.18.8, 2.21.4, and 3.1.4.

MITRE

Affected Software

8 affected componentsFixes available
maven/com.fasterxml.jackson.core/jackson-databind>=2.10.0<2.18.8, >=2.10.0<2.21.4, >=2.10.0<3.1.4
maven/tools.jackson.core:jackson-databind>=3.0.0<3.1.4
3.1.4
maven/com.fasterxml.jackson.core:jackson-databind>=3.0.0<3.1.4
3.1.4
maven/com.fasterxml.jackson.core:jackson-databind>=2.19.0<2.21.4
2.21.4
maven/com.fasterxml.jackson.core:jackson-databind>=2.10.0<2.18.8
2.18.8
fasterxml jackson-databind>=2.10.0<2.18.8
fasterxml jackson-databind>=2.19.0<2.21.4
fasterxml jackson-databind>=3.0.0<3.1.4

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/tools.jackson.core:jackson-databind to a version that resolves this vulnerability.

    Fixed in 3.1.4
  2. Upgrade

    Upgrade maven/com.fasterxml.jackson.core:jackson-databind to a version that resolves this vulnerability.

    Fixed in 3.1.4
  3. Upgrade

    Upgrade maven/com.fasterxml.jackson.core:jackson-databind to a version that resolves this vulnerability.

    Fixed in 2.21.4
  4. Upgrade

    Upgrade maven/com.fasterxml.jackson.core:jackson-databind to a version that resolves this vulnerability.

    Fixed in 2.18.8
  5. Upgrade

    Upgrade jackson-databind to a version that resolves this vulnerability.

    Fixed in 2.18.8Patch FasterXML/jackson-databind#5981
  6. Upgrade

    Upgrade jackson-databind to a version that resolves this vulnerability.

    Fixed in 2.21.4Patch FasterXML/jackson-databind#5981
  7. Upgrade

    Upgrade jackson-databind to a version that resolves this vulnerability.

    Fixed in 3.1.4Patch FasterXML/jackson-databind#5981

Event History

Jun 23, 2026
CVE Published
via MITRE·08:53 PM
Data Sourced
via MITRE·08:53 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·09:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Advisory Published
via GitHub·09:22 PM
Data Sourced
via GitHub·09:22 PM
DescriptionSeverityWeaknessAffected Software
Data Sourced
via Red Hat·10:01 PM
DescriptionSeverityAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-54513?

CVE-2026-54513 has a high severity score of 8.1.

2

How do I fix CVE-2026-54513?

To fix CVE-2026-54513, upgrade jackson-databind to a version that is not affected, such as versions 2.18.9, 2.21.5, or 3.1.5 and later.

3

What systems are affected by CVE-2026-54513?

CVE-2026-54513 affects jackson-databind versions from 2.10.0 through 2.18.8, 2.21.4, and 3.1.4.

4

What is the impact of CVE-2026-54513?

The impact of CVE-2026-54513 is a potential bypass of the array subtype allowlist, which may lead to security vulnerabilities.

5

Who should be concerned about CVE-2026-54513?

Developers and organizations using the jackson-databind library should be concerned about CVE-2026-54513 due to its high severity and potential for exploitation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203