
Este repositorio proporciona una corrección de seguridad integral de las vulnerabilidades de seguridad de denegación de servicio y asignación de recursos sin límites ni limitaciones reportadas en CVE-2025-52999, GHSA-2m67-wjpj-xhg9 y sonatype-2022-6438, manteniendo al mismo tiempo la compatibilidad total con jackson‑core 2.13.5.
Esta rama (2.13.5-CVE-2025-52999-sonatype-2022-6438-GHSA-2m67-wjpj-xhg9) contiene una remediación de seguridad integral de vulnerabilidades de denegación de servicio (DoS) y de Asignación de Recursos Sin Límites o Limitación dirigidas a jackson-core 2.13.5. Introduce la API StreamReadConstraints, alineada con la API introducida en jackson-core 2.15.0 pero ampliada con una cobertura más extensa del analizador y protecciones adicionales contra vectores de ataque, abordando un ataque de agotamiento por profundidad de anidamiento (CVE-2025-52999), Asignación de Recursos Sin Límites o Limitación (SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924), una evasión de la restricción de longitud de documento (SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 / GHSA-2m67-wjpj-xhg9) y un ataque de agotamiento por longitud de token numérico (Sonatype-2022-6438), manteniéndose compatible con la superficie de API pública de jackson-core versión 2.13.5.
| Rama | Vulnerabilidades abordadas |
|---|---|
2.13.5-CVE-2025-52999-sonatype-2022-6438 | CVE-2025-52999, Sonatype-2022-6438, SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924 |
2.13.5-CVE-2025-52999-sonatype-2022-6438-GHSA-2m67-wjpj-xhg9 | Todas las anteriores + GHSA-2m67-wjpj-xhg9 (evasión de la restricción de longitud de documento) |
La rama original (2.13.5-CVE-2025-52999-sonatype-2022-6438) remedia tres vulnerabilidades
y se conserva en el remoto sasso. Esta rama la amplía con la remediación adicional de
GHSA-2m67-wjpj-xhg9,
que aplica maxDocumentLength en todas las rutas del analizador.
| ID | Tipo | Severidad | CVSS | Corrección ascendente |
|---|---|---|---|---|
| CVE-2025-52999 | Denegación de servicio — profundidad de anidamiento sin límite | Alta | 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) | jackson-core 2.15.0 |
| Sonatype-2022-6438 / SNYK-JAVA-COMFASTERXMLJACKSONCORE-7569538 | Denegación de servicio — longitud de token numérico sin límite | Alta | 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) | jackson-core 2.15.0 |
| SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924 | Asignación de Recursos Sin Límites o Limitación | Alta | 8.7 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) | jackson-core 2.18.6, 2.21.1 o superior. |
| SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 / GHSA-2m67-wjpj-xhg9 | Asignación de Recursos Sin Límites o Limitación — evasión de la restricción de longitud de documento | Alta | 8.7 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) | jackson-core 2.18.7, 2.21.2 o superior. |
| Versión | CVE-2025-52999 | Sonatype-2022-6438 / SNYK-JAVA-COMFASTERXMLJACKSONCORE-7569538 | SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924 | SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 |
|---|---|---|---|---|
| 2.13.5 | Vulnerable | Vulnerable | Vulnerable | Vulnerable |
| 2.13.5-CVE-2025-52999-sonatype-2022-6438 | Remediada | Remediada | Remediada | Vulnerable |
| 2.13.5-CVE-2025-52999-sonatype-2022-6438-GHSA-2m67-wjpj-xhg9 | Remediada | Remediada | Remediada | Remediada |
| 2.14.x | Vulnerable | Vulnerable | Vulnerable | Vulnerable |
| 2.15.x | Remediada | Remediada | Vulnerable | Vulnerable |
| 2.16.x | Remediada | Remediada | Vulnerable | Vulnerable |
| 2.17.x | Remediada | Remediada | Vulnerable | Vulnerable |
| 2.18.6+ | Remediada | Remediada | Remediada | Vulnerable |
| 2.18.7+ | Remediada | Remediada | Remediada | Remediada |
| 2.21.1+ | Remediada | Remediada | Remediada | Vulnerable |
| 2.21.2+ | Remediada | Remediada | Remediada | Remediada |
Entrada NVD
| Campo | Valor |
|---|---|
| ID CVE | CVE-2025-52999 |
| Publicada | 2025-06-25 |
| Última modificación | 2025-06-26 |
| Fuente (CNA) | GitHub, Inc. |
| Puntuación CVSS v4.0 | 8.7 ALTA — CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| CWE | CWE-121 — Desbordamiento de búfer basado en pila |
| Aviso de GitHub | GHSA-h46c-h94j-95f3 |
| PR de corrección ascendente | jackson-core#943 |
Descripción oficial de NVD
jackson-core contiene las abstracciones centrales de bajo nivel de analizador ("streaming") incremental y generador utilizadas por Jackson Data Processor. En versiones anteriores a la 2.15.0, si un usuario analiza un archivo de entrada y este contiene datos profundamente anidados, Jackson podría terminar lanzando una
StackOverflowErrorsi la profundidad es particularmente grande. jackson-core 2.15.0 contiene un límite configurable para la profundidad que Jackson recorrerá en un documento de entrada, con un valor predeterminado de profundidad permitida de 1.000. jackson-core lanzará unaStreamConstraintsExceptionsi se alcanza el límite. jackson-databind también se beneficia de este cambio porque utiliza jackson-core para analizar entradas JSON. Como solución alternativa, los usuarios deben evitar analizar archivos de entrada de fuentes no confiables.
Solución alternativa: evite analizar entradas JSON de fuentes no confiables hasta que se implemente la versión remediada.
Causa raíz: Antes de la 2.15.0, JsonParser no imponía ningún límite sobre cuán profundamente
anidado podía estar un documento JSON. Cada token de matriz [ u objeto { provocaba que
JsonReadContext.createChildArrayContext() / createChildObjectContext() asignara un nuevo nodo de
contexto en el montículo e incrementara una cadena de referencias. Un atacante puede elaborar un
documento con decenas de miles de niveles anidados, lo que provoca que la Máquina Virtual de Java
agote la pila de su hilo o la memoria del montículo.
Ruta de código vulnerable: