Alta

jackson-databind quadratic forward-reference completion

  • Publicada: 30.09.2026
  • Actualizado: 11.10.2026 13:20

Summary

When an @JsonIdentityInfo collection or map first creates N unresolved object-ID references and later resolves the same IDs in reverse order, jackson-databind scans the remaining pending-reference accumulator for each resolution. A shallow JSON document whose size grows linearly can therefore cause quadratic CPU work during deserialization.

Details

The affected path is forward-reference completion in CollectionDeserializer.CollectionReferringAccumulator.resolveForwardReference() and the corresponding map implementation. The implementation performs a linear search of the pending accumulator for every resolved object ID.

The behavior is runtime-confirmed in jackson-databind 2.5.0, 2.22.1, and 3.2.1. Current 2.22 and 3.2 source branches retained the same design when rechecked. A 2.4.0 control fails closed before successful reverse-order completion, so 2.5.0 is the conservative runtime-confirmed affected floor. The patched versions are: 2.18.11, 2.21.7, 2.22.3, 3.1.7 and 3.2.3.

The vulnerable application must deserialize attacker-influenced JSON into an identity-enabled collection or map. The issue does not require deep nesting or syntactically unusual JSON.

Suggested correction: replace repeated linear lookup/removal with a keyed pending-reference structure or another design that provides linear or amortized-linear completion. A regression should preserve input order, duplicate-ID behavior, and unresolved-ID errors while bounding reverse-order resolution work.

PoC

The proof constructs a shallow collection containing N unresolved @JsonIdentityInfo references followed by definitions of those same IDs in reverse order. Its ID class counts equals() calls, giving a deterministic work measure rather than a timing-dependent result.

With N=2,000, affected versions perform exactly 2,003,000 ID comparisons. An equally sized control in which every reference is already resolved performs zero comparisons in the pending-reference lookup path. The run is bounded to a 512 MiB JVM. The result demonstrates quadratic growth: approximately N * (N + 1) / 2 comparisons, plus fixed setup comparisons.

Impact

An unauthenticated source that can submit JSON to an application using the affected identity-enabled collection or map shape can consume quadratic CPU and exhaust a request-time or worker-capacity budget, causing denial of service. The application model/configuration prerequisite is material. No confidentiality, integrity, code-execution, or parser-depth impact is claimed.

Requested credit: Daniel Birtwhistle

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Java / Kotlin (Maven) com.fasterxml.jackson.core:jackson-databind >= 2.19.0, < 2.21.7, >= 2.5.0, < 2.18.11, >= 2.22.0, < 2.22.3 2.21.7, 2.18.11, 2.22.3
Java / Kotlin (Maven) tools.jackson.core:jackson-databind >= 3.0.0, < 3.1.7, >= 3.2.0, < 3.2.3 3.1.7, 3.2.3

Referencias

Puntuación CVSS 7.5/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Debilidad (CWE)
CWE-400
Plataforma
Java / Kotlin (Maven)
Paquete
com.fasterxml.jackson.core:jackson-databind, tools.jackson.core:jackson-databind
Publicada
30.09.2026
Actualizado
11.10.2026 13:20

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-cxp5-3px4-pw24 - CC BY 4.0

Historial de vulnerabilidades: com.fasterxml.jackson.core:jackson-databind

Todas las vulnerabilidades publicadas de este paquete (Java / Kotlin (Maven)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (86) en el archivo
Entradas en total
86
Primera → última
10.2018 09.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 24
  • Alta 48
  • Media 14

Divulgaciones por año

  1. 2018: 4
  2. 2019: 19
  3. 2020: 23
  4. 2021: 18
  5. 2022: 4
  6. 2023: 1
  7. 2024: 0
  8. 2025: 0
  9. 2026: 17
Gravedad:
  1. jackson-databind quadratic forward-reference completion esta entrada
    Alta · 7.5 CVE-2026-91777 >= 2.19.0, < 2.21.7, >= 2.5.0, < 2.18.11, >= 2.22.0, < 2.22.3 2.21.7, 2.18.11, 2.22.3
  2. Alta · 7.5 CVE-2026-91776 >= 2.0.0, < 2.18.11, >= 2.19.0, < 2.21.7, >= 2.22.0, < 2.22.3 2.18.11, 2.21.7, 2.22.3
  3. Alta · 7.5 CVE-2026-68497 >= 2.14.0, < 2.18.10, >= 2.19.0, < 2.21.6, >= 2.22.0, < 2.22.2 2.18.10, 2.21.6, 2.22.2
  4. Alta · 8.1 CVE-2026-54513 >= 2.10.0, < 2.18.8, >= 2.19.0, < 2.21.4, >= 3.0.0, < 3.1.4 2.18.8, 2.21.4, 3.1.4
  5. Alta · 8.1 CVE-2026-54512 >= 2.10.0, < 2.18.8, >= 3.0.0, < 3.1.4, >= 2.19.0, < 2.21.4 2.18.8, 3.1.4, 2.21.4
  6. Alta · 7.5 CVE-2021-46877 >= 2.10.0, < 2.12.6, >= 2.13.0, < 2.13.1 2.12.6, 2.13.1
  7. Alta · 7.5 CVE-2022-42003 >= 2.4.0-rc1, < 2.12.7.1, >= 2.13.0, < 2.13.4.2 2.12.7.1, 2.13.4.2
  8. Alta · 7.5 CVE-2022-42004 >= 2.4.0-rc1, < 2.12.7.1, >= 2.13.0, < 2.13.4 2.12.7.1, 2.13.4
  9. Alta · 8.1 CVE-2020-10650 < 2.9.10.4 2.9.10.4
  10. Alta · 7.5 CVE-2020-36518 >= 2.13.0, < 2.13.2.1, < 2.12.6.1 2.13.2.1, 2.12.6.1
  11. Alta · 8.1 CVE-2020-36189 >= 2.7.0, < 2.9.10.8, < 2.6.7.5 2.9.10.8, 2.6.7.5
  12. Alta · 8.1 CVE-2020-36187 >= 2.0.0, < 2.9.10.8 2.9.10.8
  13. Alta · 8.1 CVE-2020-36188 >= 2.7.0, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
  14. Alta · 8.1 CVE-2020-36183 >= 2.7.00, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
  15. Alta · 8.1 CVE-2020-36184 >= 2.0.0, < 2.9.10.8 2.9.10.8
  16. Alta · 8.1 CVE-2020-36180 >= 2.7.0, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
  17. Alta · 8.1 CVE-2020-36181 >= 2.7.0, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
  18. Alta · 8.1 CVE-2020-36185 >= 2.0.0, < 2.9.10.8 2.9.10.8
  19. Alta · 8.1 CVE-2020-36179 >= 2.7.0, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
  20. Alta · 8.1 CVE-2020-36182 >= 2.7.0, < 2.9.10.8, >= 2.0.0, < 2.6.7.5 2.9.10.8, 2.6.7.5
Mostrar más (20) Mostrando 20 de 72

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.