CVE-2026-68494
Red Hat Security Advisory: Release of Red Hat OpenShift Developer Tools - Openshift Jenkins 4.20 security update.
Beschreibung
Die Behebung in jackson-core 2.18.6 und 2.21.1 für CVE-2026-18401 (GHSA-72hv-8253-57qq, Umgehung der Längenbeschränkung im nicht-blockierenden Parser) ist unvollständig. Dieser Eintrag behandelt die verbleibende Umgehung. Die frühere Behebung verband validateIntegerLength() mit einer neuen _setIntLength()-Hilfsfunktion und rief sie überall auf, wo der Zahlenanteil eines Wertes entschieden wird: ein Terminierungsbyte tritt ein, ein '.' oder 'e'/'E' erscheint, oder die Eingabe endet innerhalb eines vollständig gepufferten Werts. Sie wurde nicht auf dem Angreifer-relevanten Pfad aufgerufen, bei dem der Parser während des Verbleibs im MINOR_NUMBER_INTEGER_DIGITS-Zustand ausgeht und NOT_AVAILABLE an den Aufrufer zurückgibt. Daher kann ein Angreifer JSON-Daten in viele kleine Teile zu einem nicht-blockierenden Parser streamen, ohne jemals ein Terminierungsbyte zu senden, wodurch der Parser unendlich im MINOR_NUMBER_INTEGER_DIGITS-Zustand bleibt. _textBuffer.expandCurrentSegment() vergrößert den Akkumulator bei jedem Teil, während validateIntegerLength() nie aufgerufen wird. Der Akkumulator ist nur durch maxStringLength (20 MiB standardmäßig) und nicht durch maxNumberLength (1000 standardmäßig) begrenzt, was eine Verstärkung von ungefähr 20.000-fach über die dokumentierte Grenze darstellt. Da Java-Char-Werte zwei Bytes einnehmen, kann eine einzelne Verbindung auf etwa 40 MiB des Heaps anwachsen, bevor der Validator schließlich ausgelöst wird, wenn der Wert abgeschlossen ist. Der entsprechende Code für den Bruchpfad ist korrekt: _finishFloatFraction() ruft _setFractLength() vor seinem NOT_AVAILABLE-Rückgabewert auf. Der fehlende Aufruf betrifft die Ziffernwege in _startPositiveNumber(), _startNegativeNumber() und _finishNumberIntegralPart() in NonBlockingUtf8JsonParserBase. Auswirkung: Reaktive Frameworks wie Spring WebFlux/Reactor, Quarkus, Helidon und Vert.x füttern eingehende HTTP- oder gRPC-Bytes an den asynchronen Parser, sobald sie eintreffen, was genau die gestreamte Form erfordert. Operatoren, die StreamReadConstraints.maxNumberLength erwarten, um den Speicher pro Zahlwert zu begrenzen, erhalten diese Garantie nicht; der Speicher akkumuliert pro gleichzeitiger Verbindung und durch Angreifer-gesteuerte Parallelität kann der JVM-Speicher erschöpft werden. Die synchronen Parser (UTF8StreamJsonParser, ReaderBasedJsonParser) und der asynchrone Parser bei vollständigem Eingang sind nicht betroffen. Die Ausnutzung erfordert nur die Fähigkeit, Daten zu einem Parsing-Endpunkt zu streamen; keine Berechtigungen oder Benutzerinteraktionen sind erforderlich. Dieses Problem betrifft com.fasterxml.jackson.core:jackson-core von Version 2.15.0 bis 2.18.7 und von 2.19.0 bis 2.21.3, sowie tools.jackson.core:jackson-core von 3.0.0 bis 3.1.3. Versionen vor 2.15.0 sind nicht betroffen, da StreamReadConstraints -- die die maxNumberLength-Einstellung definiert -- erst in jackson-core 2.15.0 eingeführt wurde und daher keine solche Beschränkung in früheren Veröffentlichungen umgangen werden kann. Beachten Sie, dass GHSA-r7wm-3cxj-wff9 den betroffenen 2.x-Bereich ohne untere Grenze angibt. Die Release-Linien 2.22.x und 3.2.x sind nicht betroffen: Diese Zweige wurden erstellt, nachdem der Behebungskommit am 21.05.2026 eingegangen war, und enthalten daher die Behebung ab ihren ersten Veröffentlichungen (2.22.0, gekennzeichnet am 03.06.2026, und 3.2.0, gekennzeichnet am 08.06.2026).
Metriken
Weakness-Klassen (CWE)
CWE-770Base
Allocation of Resources Without Limits or Throttling
The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
cwe.mitre.org →
Re-Analyse & Statuswechsel
Chronologie der NVD-Audit-Events für diese CVE — Reanalyses, CVSS-Updates, CPE-Diffs.
- CVE Modified2026-08-05 02:16 UTC· 36c7be3b-2937-45df-85ea-ca7133ea542c
- Affected: jackson-core, jackson-core → jackson-core, jackson-core
- Description: The fix released in jackson-core 2.18.6 and 2.21.1 for CVE-2026-18401 (GHSA-72hv-8253-57qq, number length constraint bypass in the non-blocking parser) is incomplete. This record covers the remaining bypass. The earlier fix wired validateIntegerLength() into a new _setIntLength() helper and invoked it wherever the integer portion of a number is decided: a terminator byte arrives, a . or e/E is seen, or input ends inside a fully buffered value. It was not invoked on the attacker-relevant path where the parser runs out of input while still inside the MINOR_NUMBER_INTEGER_DIGITS minor state and returns NOT_AVAILABLE to the caller. As a result, an attacker who streams JSON to a non-blocking parser in many small chunks, without ever sending a terminator byte, keeps the parser inside MINOR_NUMBER_INTEGER_DIGITS indefinitely. _textBuffer.expandCurrentSegment() grows the accumulator on every chunk while validateIntegerLength() is never called. The accumulator is bounded only by maxStringLength (20 MiB by default) rather than by maxNumberLength (1000 by default), an amplification of roughly 20,000x over the documented limit. Because Java char values occupy two bytes, a single connection can be driven to approximately 40 MiB of heap before the validator finally fires when the value completes. The equivalent fraction-path code is correct: _finishFloatFraction() calls _setFractLength() before its NOT_AVAILABLE return. The missing call affects the integer-digit paths in _startPositiveNumber(), _startNegativeNumber() and _finishNumberIntegralPart() in NonBlockingUtf8JsonParserBase. Impact: reactive frameworks such as Spring WebFlux/Reactor, Quarkus, Helidon and Vert.x feed inbound HTTP or gRPC bytes to the async parser as they arrive, which is precisely the chunked-feed shape required. Operators who set StreamReadConstraints.maxNumberLength expecting it to cap memory per number value do not get that guarantee; memory accumulates per concurrent connection and attacker-controlled concurrency can exhaust the JVM heap. The synchronous parsers (UTF8StreamJsonParser, ReaderBasedJsonParser) and the async parser operating on complete input are not affected. Exploitation requires only the ability to stream data to a parsing endpoint; no privileges or user interaction are needed. This issue affects com.fasterxml.jackson.core:jackson-core from version 2.15.0 through 2.18.7, from 2.19.0 through 2.21.3, and from 2.22.0 through 2.22.0, and tools.jackson.core:jackson-core from 3.0.0 through 3.1.3 and from 3.2.0 through 3.2.0. Versions prior to 2.15.0 are not affected, because StreamReadConstraints -- which defines the maxNumberLength setting -- was first introduced in jackson-core 2.15.0, so no such constraint exists to be bypassed in earlier releases. Note that GHSA-r7wm-3cxj-wff9 states the affected 2.x range without a lower bound. → The fix released in jackson-core 2.18.6 and 2.21.1 for CVE-2026-18401 (GHSA-72hv-8253-57qq, number length constraint bypass in the non-blocking parser) is incomplete. This record covers the remaining bypass. The earlier fix wired validateIntegerLength() into a new _setIntLength() helper and invoked it wherever the integer portion of a number is decided: a terminator byte arrives, a '.' or 'e'/'E' is seen, or input ends inside a fully buffered value. It was not invoked on the attacker-relevant path where the parser runs out of input while still inside the MINOR_NUMBER_INTEGER_DIGITS minor state and returns NOT_AVAILABLE to the caller. As a result, an attacker who streams JSON to a non-blocking parser in many small chunks, without ever sending a terminator byte, keeps the parser inside MINOR_NUMBER_INTEGER_DIGITS indefinitely. _textBuffer.expandCurrentSegment() grows the accumulator on every chunk while validateIntegerLength() is never called. The accumulator is bounded only by maxStringLength (20 MiB by default) rather than by maxNumberLength (1000 by default), an amplification of roughly 20,000x over the documented limit. Because Java char values occupy two bytes, a single connection can be driven to approximately 40 MiB of heap before the validator finally fires when the value completes. The equivalent fraction-path code is correct: _finishFloatFraction() calls _setFractLength() before its NOT_AVAILABLE return. The missing call affects the integer-digit paths in _startPositiveNumber(), _startNegativeNumber() and _finishNumberIntegralPart() in NonBlockingUtf8JsonParserBase. Impact: reactive frameworks such as Spring WebFlux/Reactor, Quarkus, Helidon and Vert.x feed inbound HTTP or gRPC bytes to the async parser as they arrive, which is precisely the chunked-feed shape required. Operators who set StreamReadConstraints.maxNumberLength expecting it to cap memory per number value do not get that guarantee; memory accumulates per concurrent connection and attacker-controlled concurrency can exhaust the JVM heap. The synchronous parsers (UTF8StreamJsonParser, ReaderBasedJsonParser) and the async parser operating on complete input are not affected. Exploitation requires only the ability to stream data to a parsing endpoint; no privileges or user interaction are needed. This issue affects com.fasterxml.jackson.core:jackson-core from version 2.15.0 through 2.18.7, and from 2.19.0 through 2.21.3, and tools.jackson.core:jackson-core from 3.0.0 through 3.1.3. Versions prior to 2.15.0 are not affected, because StreamReadConstraints -- which defines the maxNumberLength setting -- was first introduced in jackson-core 2.15.0, so no such constraint exists to be bypassed in earlier releases. Note that GHSA-r7wm-3cxj-wff9 states the affected 2.x range without a lower bound. The 2.22.x and 3.2.x release lines are not affected: those branches were created after the fix commit landed on 2026-05-21 and therefore contain it from their initial releases (2.22.0, tagged 2026-06-03, and 3.2.0, tagged 2026-06-08).
- CVE Modified2026-08-04 19:16 UTC· 134c704f-9b21-4f2e-91b3-4a467353bcc0
- Reference: https://github.com/FasterXML/jackson-core/security/advisories/GHSA-r7wm-3cxj-wff9
- SSVC: {"id":"CVE-2026-68494","role":"CISA Coordinator","options":[{"exploitation":"poc"},{"automatable":"yes"},{"technicalI…
- New CVE Received2026-08-04 15:16 UTC· 36c7be3b-2937-45df-85ea-ca7133ea542c
- Affected: jackson-core, jackson-core
- Description: The fix released in jackson-core 2.18.6 and 2.21.1 for CVE-2026-18401 (GHSA-72hv-8253-57qq, number length constraint bypass in the non-blocking parser) is incomplete. This record covers the remaining bypass. The earlier fix wired validateIntegerLength() into a new _setIntLength() helper and invoked it wherever the integer portion of a number is decided: a terminator byte arrives, a . or e/E is seen, or input ends inside a fully buffered value. It was not invoked on the attacker-relevant path where the parser runs out of input while still inside the MINOR_NUMBER_INTEGER_DIGITS minor state and returns NOT_AVAILABLE to the caller. As a result, an attacker who streams JSON to a non-blocking parser in many small chunks, without ever sending a terminator byte, keeps the parser inside MINOR_NUMBER_INTEGER_DIGITS indefinitely. _textBuffer.expandCurrentSegment() grows the accumulator on every chunk while validateIntegerLength() is never called. The accumulator is bounded only by maxStringLength (20 MiB by default) rather than by maxNumberLength (1000 by default), an amplification of roughly 20,000x over the documented limit. Because Java char values occupy two bytes, a single connection can be driven to approximately 40 MiB of heap before the validator finally fires when the value completes. The equivalent fraction-path code is correct: _finishFloatFraction() calls _setFractLength() before its NOT_AVAILABLE return. The missing call affects the integer-digit paths in _startPositiveNumber(), _startNegativeNumber() and _finishNumberIntegralPart() in NonBlockingUtf8JsonParserBase. Impact: reactive frameworks such as Spring WebFlux/Reactor, Quarkus, Helidon and Vert.x feed inbound HTTP or gRPC bytes to the async parser as they arrive, which is precisely the chunked-feed shape required. Operators who set StreamReadConstraints.maxNumberLength expecting it to cap memory per number value do not get that guarantee; memory accumulates per concurrent connection and attacker-controlled concurrency can exhaust the JVM heap. The synchronous parsers (UTF8StreamJsonParser, ReaderBasedJsonParser) and the async parser operating on complete input are not affected. Exploitation requires only the ability to stream data to a parsing endpoint; no privileges or user interaction are needed. This issue affects com.fasterxml.jackson.core:jackson-core from version 2.15.0 through 2.18.7, from 2.19.0 through 2.21.3, and from 2.22.0 through 2.22.0, and tools.jackson.core:jackson-core from 3.0.0 through 3.1.3 and from 3.2.0 through 3.2.0. Versions prior to 2.15.0 are not affected, because StreamReadConstraints -- which defines the maxNumberLength setting -- was first introduced in jackson-core 2.15.0, so no such constraint exists to be bypassed in earlier releases. Note that GHSA-r7wm-3cxj-wff9 states the affected 2.x range without a lower bound.
- CVSS V4.0: AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
- CWE: CWE-770
Betroffene Produkte
Aus der Hersteller-/CERT-Meldung extrahierte Produkte und Versionsbereiche. Ein Version-Range wie „<4.14.6“ impliziert die Update-Empfehlung „auf 4.14.6 oder höher aktualisieren“.
Apache
Camel4.18
apache
httpclient
apache
mina
Atlassian
BambooData Center LTS 10.2.22
Atlassian
BambooData Center LTS 12.1.10
Atlassian
BitbucketData Center 10.4.2
Atlassian
BitbucketData Center LTS 10.2.6
Atlassian
BitbucketData Center LTS 9.4.23
Atlassian
ConfluenceData Center LTS 10.2.15
Atlassian
ConfluenceData Center LTS 9.2.23
Atlassian
Crucible4.9.13
Atlassian
Fisheye4.9.13
Atlassian
JiraData Center LTS 10.3.24
Atlassian
JiraData Center LTS 11.3.10
bitnami
jenkins2.556.0
bitnami
jenkins2.569.0
codehaus-plexus
plexus-utils4.0.0 – 4.0.3
codehaus-plexus
plexus-utils3.6.1
eclipse
jetty10.0.0 – 10.0.28
eclipse
jetty11.0.0 – 11.0.28
eclipse
jetty12.0.0 – 12.0.32
eclipse
jetty12.0.0 – 12.0.33
eclipse
jetty12.1.0 – 12.1.6
eclipse
jetty12.1.0 – 12.1.7
Quellen & Referenzen
- https://nvd.nist.gov/vuln/detail/CVE-2026-41635advisory
- https://github.com/apache/minapackage
- https://lists.apache.org/thread/1l91w1mqsb3lwfd504fs045ylxntt2tmweb
- http://www.openwall.com/lists/oss-security/2026/04/27/4web
- https://nvd.nist.gov/vuln/detail/CVE-2026-54428advisory
- https://github.com/apache/httpcomponents-core/commit/1ea1239bbbe3442a8382a87279c0a8119a7e358eweb
- https://github.com/apache/httpcomponents-core/commit/cc30ee058a7b10cbf4ad3dd6270ab6d1f6a74c49web
- https://github.com/apache/httpcomponents-corepackage
- https://lists.apache.org/thread/5zjp8vczvxq19pw2rvhs21q446bhl0sdweb
- http://www.openwall.com/lists/oss-security/2026/07/01/3web
- https://lists.apache.org/thread/qqfzo3fqcdk4l5496vz95ppvl4ty511qvendor-advisory
- http://www.openwall.com/lists/oss-security/2026/08/13/5
- https://nvd.nist.gov/vuln/detail/CVE-2026-64607advisory
- https://github.com/apache/httpcomponents-client/commit/55733f4121f7ba26ddf04fe12739d9c15962cb94web
- https://github.com/apache/httpcomponents-client/commit/ebac9512f555c4a355cad3f59ef2db69b597cc97web
- https://github.com/apache/httpcomponents-clientpackage
- https://github.com/apache/httpcomponents-client/releases/tag/rel/v5.6.3web
- https://github.com/apache/httpcomponents-client/releases/tag/rel/v5.7-alpha1web
- https://nvd.nist.gov/vuln/detail/CVE-2026-42779advisory
- https://github.com/advisories/GHSA-8297-v2rf-2p32advisory
Verknüpfte CVEs
- CVE-2026-70429
Jenkins 2.575 und früher sowie LTS 2.568.1 und frühere Versionen behandeln die Groß- und Kleinschreibung von Benutzernamen und Gruppennam…
highCVSSv3 8.1 - CVE-2026-70428
Jenkins-Versionen 2.575 und früher sowie LTS 2.568.1 und frühere Versionen identifizieren Dateipfade, die einen Pfadtraversal in den Name…
mediumCVSSv3 4.3 - CVE-2026-70427
Jenkins 2.575 und früher sowie LTS 2.568.1 und frühere Versionen behandeln symbolische Links mit effektiv leeren Namen bei der Extraktion…
mediumCVSSv3 4.3 - CVE-2026-70426
In Remoting 3384.v60d89463d9e0 und früher, mit Ausnahme von 3355.3357.v931d3c992987, das in Jenkins 2.575 und früher sowie LTS 2.568.1 un…
criticalCVSSv3 9.0 - CVE-2026-64607
Der auf dem klassischen I/O-Modell basierende HttpClient versagt darin, die zugrunde liegende Verbindung korrekt an den Connection Manage…
mediumCVSSv3 5.3 - CVE-2026-57281
Das Jenkins Script Security Plugin 1402.v94c9ce464861 und frühere Versionen lehnen keine Groovy AST-Transformation-Anmerkungen ab, die ei…
highCVSSv3 7.5 - CVE-2026-57280
Das Jenkins Script Security Plugin 1402.v94c9ce464861 und frühere Versionen fängt die impliziten Typumwandlungen nicht ab, die auf den El…
highCVSSv3 8.8 - CVE-2026-56624
Ungültige Zertifikatsüberprüfung in Apache MINA SSHD (serverseitig).
highCVSSv3 7.3 - CVE-2026-5588
Verwendung eines fehlerhaften oder unsicheren kryptografischen Algorithmus-Schwachstellen in Legion of the Bouncy Castle Inc.
highCVSSv3 7.5 - CVE-2026-54512
jackson-databind enthält die allgemeine Zweck-Datenbindungsfunktionalität und Baumstruktur für den Jackson Data Processor.
highCVSSv3 8.1 - CVE-2026-54428
Die Zuweisung von Ressourcen ohne Grenzen oder Drosselung im HTTP/2 HPACK-Decoder in Apache HttpComponents Core (Version 5.4.2 und früher…
highCVSSv3 7.5 - CVE-2026-54399
Sicherheitslücke durch unkontrollierte Ressourcenverbrauch in dem HTTP/1.1 Nachrichtenparser im Apache HttpComponents Core (Version 5.4.2…
highCVSSv3 7.5 - CVE-2026-53437
Jenkins-Versionen 2.567 und früher sowie LTS 2.555.2 und frühere Versionen bestimmen fälschlicherweise, dass eine Umleitungs-URL nach dem…
mediumCVSSv3 4.3 - CVE-2026-53435
In Jenkins 2.567 und früher sowie LTS 2.555.2 und früher ist es möglich, dass Angreifer beliebige Typen aus dem Jenkins-Kern oder Plugins…
highCVSSv3 8.8 - CVE-2026-50193
jackson-databind enthält die allgemeine Zweck-Datenbindungsfunktionalität und Baummodell für den Jackson Data Processor.
medium - CVE-2026-47065
ZDRES-232: resolveProxyClass Nicht Überschrieben - acceptMatchers Filter Umgehung über java.lang.reflect.Proxy Bewertung: Vollständig be…
criticalCVSSv3 9.8 - CVE-2026-42779
Die Behebung für CVE-2026-41635 wurde nicht auf die 2.1.X und 2.2.X Zweige angewendet.
criticalCVSSv3 9.8 - CVE-2026-42778
Die Behebung für CVE-2026-41409 wurde nicht auf die 2.1.X und 2.2.X-Zweige angewendet.
criticalCVSSv3 9.8 - CVE-2026-41635
Ein Fehler wurde in Apache MINA gefunden.
criticalCVSSv3 9.8 - CVE-2026-41409
Ein Fehler wurde bei Apache MINA gefunden.
criticalCVSSv3 9.8 - CVE-2026-40542
Fehlende kritische Schritt in der Authentifizierung im Apache HttpClient 5.6 ermöglicht es einem Angreifer, den Client dazu zu bringen, S…
highCVSSv3 7.3 - CVE-2026-3505
Zuweisung von Ressourcen ohne Grenzen oder Drosselung, Schwachstelle bei der unkontrollierten Ressourcennutzung in Legion of the Bouncy C…
highCVSSv3 7.5 - CVE-2026-2332
In Eclipse Jetty ist der HTTP/1.1-Parser anfällig für Anfragen-Schmuggel, wenn Chunk-Erweiterungen verwendet werden, ähnlich den "funky c…
criticalCVSSv3 9.1 - CVE-2026-1605
Im Eclipse Jetty, Versionen 12.0.0-12.0.31 und 12.1.0-12.0.5, führt die Klasse GzipHandler zu einer Schwachstelle, wenn eine komprimierte…
highCVSSv3 7.5
4 weitere CVEs anzeigen
- CVE-2026-0636
Ungenaue Neutralisierung von Sonderzeichen in einer LDAP-Abfrage ('LDAP-Injektion') Schwachstelle bei Legion of the Bouncy Castle Inc.
mediumCVSSv3 6.5 - CVE-2025-67030
Verwundbarkeit durch Verzeichnisumgehung in der Methode `extractFile` von `org.codehaus.plexus.util.Expand` in `plexus-utils`, vor 6d780b…
highCVSSv3 8.8 - CVE-2025-14813
Verwendung eines fehlerhaften oder unsicheren kryptografischen Algorithmus-Schwachstellen in Legion of the Bouncy Castle Inc.
criticalCVSSv3 7.5 - CVE-2024-29371
In jose4j vor Version 0.9.6 kann ein Angreifer eine Denial-of-Service (DoS)-Bedingung verursachen, indem er einen bösartigen JSON Web Enc…
highCVSSv3 7.5