
CVE-2026-2332 und 4 weitere Jetty-CVEs aus 2026: Welche trifft Ihr Jetty- (oder Spring Boot-)Build, und existiert die von Jetty genannte korrigierte Version überhaupt auf Maven Central? Für die EOL-Linien 9.4/10/11 lautet die Antwort „siehe Details zur Verfügbarkeit“ = 404.
Welche der fünf CVEs aus dem Jahr 2026 treffen dein Jetty (oder das Jetty, das Spring Boot mitbringt) – und existiert die Version, auf die du laut offizieller Empfehlung upgraden sollst, überhaupt auf Maven Central?
Hauptfokus: CVE-2026-2332 (GHSA-355h-qmc2-wpwf, high / CVSS v3 7.4): Chunked-Request-Schmuggel in jetty-http.
Die härteste Tatsache: Für die drei EOL-Altlinien 9.4 / 10 / 11 existiert die öffentliche Fix-Version schlicht nicht – die offizielle Sicherheitsseite schreibt für sie jeweils
see details for availability (= kommerzieller Support), und diese Versionsnummern liefern auf Maven Central gemessen alle 404.
java -jar jetty-line-check.jar /path/to/jetty # entpacktes Jetty-Deployment (scannt lib/*.jar)
java -jar jetty-line-check.jar app.war # war
java -jar jetty-line-check.jar app.jar # Spring Boot fat jar
java -jar jetty-line-check.jar --table # nur die Bewertungstabelle: fünf CVEs × Module × Versionslinien
java -jar jetty-line-check.jar --utf8 ... # bei chinesischem Zeichensalat in der Windows-Konsole hinzufügen
Das Schwesterprojekt tomcat-line-check nutzt als Kriterium „gibt es eine bestimmte Fix-Klasse im Jar“, weil der Tomcat-Fix damals eine neue Klasse hinzugefügt hat.
Bei diesen Jetty-CVEs funktioniert das nicht. Der Hauptfokus CVE-2026-2332 ändert den Methodenrumpf von HttpParser und fügt keine neue Klasse hinzu
(vor dem Bau mit gh api compare + javap verifiziert). Das Kriterium kann also nur lauten:
Welche CVEs treffen deine vollständigen Koordinaten + Versionslinie; und existiert die offiziell genannte Fix-Version überhaupt auf Maven Central.
Die Bewertungstabelle wird von tools/gen_table.py aus den vulnerabilities[] der fünf GitHub-Advisories + echten Maven-Central-Jar-HEAD-Prüfungen generiert.
Sieben Assertions (Positivkontrolle / Kernaussage / Endversion der Altlinien / Sentinel / Struktur des Hauptfokus / gesplittete Module / Einstufung) – schlagen sie fehl, wird die Tabelle nicht ausgegeben.
| Drei Zustände | Bedeutung |
|---|---|
PUBLIC | Das Advisory nennt eine Fix-Version, und sie ist tatsächlich auf Maven Central – öffentlich upgradebar |
404 | Das Advisory nennt eine Fix-Version, aber sie liefert auf Central 404 – die offizielle Sicherheitsseite schreibt see details for availability (kommerzieller Support) |
无 | Das Advisory gibt für diese Linie überhaupt keine Fix-Version an (first_patched_version ist leer) – ein Fix erfordert hier einen Sprung über die Hauptversion |
Die ganze Fläche aus 404 und 无 bei den Altlinien (9.4 / 10.0 / 11.0) ist der Wert dieses Tools. Führe --table aus, um das Gesamtbild zu sehen.
org.eclipse.jetty reviewed advisories, 2026)| CVE | Modul | Einstufung | In einem Satz |
|---|---|---|---|
| CVE-2026-2332 | jetty-http | high / v3 7.4 | ⭐ Hauptfokus: \r\n in einem chunked quoted-string wird als Ende des Chunk-Headers behandelt → Request-Schmuggel (CWE-444) |
| CVE-2026-5795 | jaspi (12.x gesplittet in ee8/9/10/11-jaspi) | high / v3 7.4 | JASPI-ThreadLocal nicht geleert → Rechteausweitung |
| CVE-2026-6790 | jetty-server | medium / v3 5.3 | Host- / :authority-Verwechslung bei HTTP/2·3 |
| CVE-2026-10050 | jetty-security (12.x plus ee8/9-security) | high / v4 8.7 | ISO-8859-1-Behandlung bei Digest-Authentifizierung |
| CVE-2025-11143 | jetty-http | low / v3 3.7 | Unterschiede bei der URI-Analyse |
🔴 Nur die Angriffsfläche des Hauptfokus 2332 ist belastbar (der Schmuggelpfad liegt auf dem Standard-Parsing-Hauptpfad ServerConnector / HttpParser,
es muss keine bestimmte Funktion aktiviert werden). Die übrigen vier sind nur je eine Zeile in der Bewertungstabelle:
CVE-2026-10050 (Digest) ist sehr klein – nur erreichbar, wenn Digest-Authentifizierung explizit aktiviert ist; nicht als Hauptverkaufsargument verwenden.CVE-2026-6790 ist medium, CVE-2025-11143 ist low – nicht pauschal als „hochkritisch“ bezeichnen.see details for availability – dabei bleibt es.GHSA-r7p8-xq5m-436c · GHSA-7p3p-8qv8-m2vh · GHSA-2fvj-hgj9-j2gr · GHSA-wjpw-4j6x-6rwhsee details for availability): https://jetty.org/security.htmlpython tools/gen_table.py --dry # nur Assertions ausführen, keine Datei schreiben
python tools/gen_table.py # erst wenn alle Assertions bestehen, CveTable.java schreiben
python tools/recheck_before_publish.py # am Tag der Veröffentlichung erneut ausführen; bei ungültigen Aussagen den Text ändern, nicht das Kriterium
mvn package # benötigt JDK 17; zur Laufzeit keine Abhängigkeiten (JUnit nur zur Testzeit)
| Code | Bedeutung |
|---|---|
0 | Scan abgeschlossen, und jede Datei wurde tatsächlich eingelesen |
2 | Verwendungsfehler (kein Pfad angegeben) |
4 | Eine Datei ist nicht lesbar – kein Zip, abgeschnittener Inhalt oder Lesefehler |
🔴 Begründung für 4: Die Spur ist für Menschen gedacht, CI und Skripte schauen auf den Exit-Code. Ohne ihn
wird ein beschädigtes / verschlüsseltes / unvollständig heruntergeladenes Jar still zu einem „keine Probleme gefunden“ – „ich kann es nicht lesen“ und „du bist sicher“ müssen zwei verschiedene Aussagen sein.
⚠️ Ein legitimes leeres Jar (ein 22-Byte-EOCD-Datensatz) gilt nicht als unlesbar und löst kein 4 aus.
MIT