
Dieses Repository bietet eine umfassende Behebung der Sicherheitslücken Denial-of-Service und Ressourcenzuweisung ohne Grenzen oder Drosselung, die in CVE-2025-52999, GHSA-2m67-wjpj-xhg9 und sonatype-2022-6438 gemeldet wurden, bei vollständiger Kompatibilität mit jackson‑core 2.13.5.
Dieser Branch (2.13.5-CVE-2025-52999-sonatype-2022-6438-GHSA-2m67-wjpj-xhg9) enthält eine umfassende Sicherheitsbehebung für Sicherheitslücken im Zusammenhang mit Denial of Service (DoS) und der Zuweisung von Ressourcen ohne Grenzen oder Drosselung, die jackson-core 2.13.5 betreffen. Er führt die StreamReadConstraints-API ein —
abgestimmt auf die in jackson-core 2.15.0 eingeführte API, jedoch erweitert um eine breitere Parser-Abdeckung
und zusätzliche Schutzmaßnahmen gegen Angriffsvektoren — und behebt damit einen Erschöpfungsangriff über die Verschachtelungstiefe
(CVE-2025-52999), die Zuweisung von Ressourcen ohne Grenzen oder Drosselung (SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924), eine Umgehung der Begrenzung der Dokumentlänge (SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 / GHSA-2m67-wjpj-xhg9) sowie einen Erschöpfungsangriff über die Länge numerischer Tokens (Sonatype-2022-6438), während die Kompatibilität mit der öffentlichen API-Oberfläche von jackson-core Version 2.13.5 erhalten bleibt.
| Branch | Behobene Sicherheitslücken |
|---|---|
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 | Alle oben genannten + GHSA-2m67-wjpj-xhg9 (Umgehung der Begrenzung der Dokumentlänge) |
Der ursprüngliche Branch (2.13.5-CVE-2025-52999-sonatype-2022-6438) behebt drei Sicherheitslücken
und ist auf dem Remote sasso erhalten. Dieser Branch erweitert ihn um die zusätzliche Behebung von
GHSA-2m67-wjpj-xhg9,
die maxDocumentLength über alle Parser-Pfade hinweg durchsetzt.
| ID | Typ | Schweregrad | CVSS | Upstream-Fix |
|---|---|---|---|---|
| CVE-2025-52999 | Denial of Service — unbegrenzte Verschachtelungstiefe | High | 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 | Denial of Service — unbegrenzte Länge numerischer Tokens | High | 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 | Zuweisung von Ressourcen ohne Grenzen oder Drosselung | High | 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 oder höher. |
| SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 / GHSA-2m67-wjpj-xhg9 | Zuweisung von Ressourcen ohne Grenzen oder Drosselung — Umgehung der Begrenzung der Dokumentlänge | High | 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 oder höher. |
| Version | CVE-2025-52999 | Sonatype-2022-6438 / SNYK-JAVA-COMFASTERXMLJACKSONCORE-7569538 | SNYK-JAVA-COMFASTERXMLJACKSONCORE-15365924 | SNYK-JAVA-COMFASTERXMLJACKSONCORE-15907551 |
|---|---|---|---|---|
| 2.13.5 | Verwundbar | Verwundbar | Verwundbar | Verwundbar |
| 2.13.5-CVE-2025-52999-sonatype-2022-6438 | Behoben | Behoben | Behoben | Verwundbar |
| 2.13.5-CVE-2025-52999-sonatype-2022-6438-GHSA-2m67-wjpj-xhg9 | Behoben | Behoben | Behoben | Behoben |
| 2.14.x | Verwundbar | Verwundbar | Verwundbar | Verwundbar |
| 2.15.x | Behoben | Behoben | Verwundbar | Verwundbar |
| 2.16.x | Behoben | Behoben | Verwundbar | Verwundbar |
| 2.17.x | Behoben | Behoben | Verwundbar | Verwundbar |
| 2.18.6+ | Behoben | Behoben | Behoben | Verwundbar |
| 2.18.7+ | Behoben | Behoben | Behoben | Behoben |
| 2.21.1+ | Behoben | Behoben | Behoben | Verwundbar |
| 2.21.2+ | Behoben | Behoben | Behoben | Behoben |
NVD-Eintrag
| Feld | Wert |
|---|---|
| CVE-ID | CVE-2025-52999 |
| Veröffentlicht | 2025-06-25 |
| Zuletzt geändert | 2025-06-26 |
| Quelle (CNA) | GitHub, Inc. |
| CVSS-v4.0-Score | 8.7 HIGH — 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 — Stack-based Buffer Overflow |
| GitHub-Advisory | GHSA-h46c-h94j-95f3 |
| Upstream-Fix-PR | jackson-core#943 |
Offizielle NVD-Beschreibung
jackson-core enthält die zentralen Low-Level-Abstraktionen für den inkrementellen („Streaming“-)Parser und -Generator, die vom Jackson Data Processor verwendet werden. In Versionen vor 2.15.0 konnte Jackson, wenn ein Benutzer eine Eingabedatei parst, die besonders tief verschachtelte Daten enthält, einen
StackOverflowErrorauslösen, falls die Tiefe besonders groß ist. jackson-core 2.15.0 enthält ein konfigurierbares Limit dafür, wie tief Jackson ein Eingabedokument durchläuft; standardmäßig ist eine zulässige Tiefe von 1.000 festgelegt. jackson-core löst eineStreamConstraintsExceptionaus, wenn das Limit erreicht wird. jackson-databind profitiert ebenfalls von dieser Änderung, da es jackson-core zum Parsen von JSON-Eingaben verwendet. Als Workaround sollten Benutzer das Parsen von Eingabedateien aus nicht vertrauenswürdigen Quellen vermeiden.
Workaround: Vermeiden Sie das Parsen von JSON-Eingaben aus nicht vertrauenswürdigen Quellen, bis die behobene Version bereitgestellt ist.
Grundursache: Vor 2.15.0 legte JsonParser kein Limit dafür fest, wie tief ein JSON-Dokument
verschachtelt sein durfte. Jedes Token für ein Array [ oder ein Objekt { veranlasste JsonReadContext.createChildArrayContext() /
createChildObjectContext() dazu, einen neuen Kontextknoten auf dem Heap zu allokieren und eine Referenz-
kette zu verlängern. Ein Angreifer kann ein Dokument mit Zehntausenden von Verschachtelungsebenen erstellen, wodurch die Java Virtual Machine
ihren Thread-Stack oder Heap-Speicher erschöpft.
Verwundbarer Codepfad: