CVE-2026-54513: jackson-databind has an array subtype allowlist bypass in BasicPolymorphicTypeValidator (allowIfSubTypeIsArray)
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.
References
- github.com/FasterXML/jackson-databind/commit/01d1692c8d0ed03e51a0e3c4f8a9e6908e4931e5
- github.com/FasterXML/jackson-databind/commit/24529da29fdf46ff94ca38de9ebf31cd188f5e8e
- github.com/FasterXML/jackson-databind/issues/5981
- github.com/FasterXML/jackson-databind/issues/5983
- github.com/FasterXML/jackson-databind/pull/5984
- github.com/FasterXML/jackson-databind/security/advisories/GHSA-rmj7-2vxq-3g9f
- github.com/advisories/GHSA-rmj7-2vxq-3g9f
- nvd.nist.gov/vuln/detail/CVE-2026-54513
Code Behaviors & Features
Detect and mitigate CVE-2026-54513 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →