
Offline-Java-Tool, das Jars und Versionen scannt, um die Anfälligkeit für sieben netty-codec-http2-CVEs zu ermitteln, und die einzige gepatchte Version empfiehlt, die alle behebt.
Offline-Prüfer für die 7 io.netty:netty-codec-http2 CVEs.
Sagt dir, welchen davon du tatsächlich ausgesetzt bist — und die einzige Version, die alle behebt:
4.1.136.Final / 4.2.16.Final, eine Zahl, die auf keinem der sieben Advisories erscheint.
CVE-2025-55163 · CVE-2026-33871 · CVE-2026-47244 · CVE-2026-48043 · CVE-2026-50560 · CVE-2026-56819 · CVE-2026-59900
Einzelnes Jar, keine Laufzeitabhängigkeiten, vollständig offline, Java 17+.
Die sieben Advisories nennen jeweils eine andere Fix-Version. In der 4.1-Linie sind das 124 / 132 / 135 / 135 / 135 / 136 / 136. Folgst du einem einzelnen Advisory, befindest du dich weiterhin im betroffenen Bereich der anderen. Die Version, die alle sieben abdeckt, muss berechnet werden — und steht auf keinem von ihnen.
Dasselbe gilt, mit völlig anderen Zahlen, für die 4.2-Linie (4 / 11 / 15 / 15 / 15 / 16 / 16).
Wer auf 4.2.15.Final sitzt, hat fünf der sieben behoben und nimmt oft an, er sei „auf der neuen Linie".
pom.xml nicht — absichtlichWenn du Spring WebFlux verwendest, kommt netty-codec-http2 über
spring-boot-starter-webflux
-> spring-boot-starter-reactor-netty
-> reactor-netty-http
-> netty-codec-http2
Die artifactId erscheint nie in deiner pom.xml. Eine pom-basierte Prüfung antwortet „Ich verwende es nicht",
was falsch ist. Dieses Tool liest die Jars, die tatsächlich ausgeliefert werden.
java -jar netty-http2-check.jar target/ # Build-Ausgabe scannen
java -jar netty-http2-check.jar myapp.jar # Spring Boot Fat-Jar / war, verschachtelte Jars inklusive
java -jar netty-http2-check.jar --version 4.1.100.Final # Version direkt bewerten
java -jar netty-http2-check.jar --table # vollständige Regel-Tabelle ausgeben
--utf8 / --gbk, falls die Ausgabe auf einer Windows-Konsole als Mojibake erscheint.
Beispiel:
netty-codec-http2 4.1.135.Final
evidence: META-INF/io.netty.versions.properties
中了 2 条:
CVE-2026-56819 high CVSS 7.5 解压泄漏 -> OOM
CVE-2026-59900 medium 官方未给分 Host 头与 :authority 去重缺失 -> 路由绕过
-> 一次修完这几条,升到:4.1.136.Final
medium. Nur CVE-2025-55163, CVE-2026-33871 und
CVE-2026-56819 sind als high eingestuft. Das Tool druckt jede Schwere separat — und du solltest es auch tun.grpc-netty-shaded wird erkannt, aber nur CVE-2025-55163 listet diese Koordinate.
„Das Advisory listet es nicht" ist nicht „es ist nicht betroffen".CVE-2026-33871 in der 4.2-Linie: Der betroffene Bereich ist < 4.2.10.Final, aber der angegebene Fix ist
4.2.11.Final. 4.2.10 liegt dazwischen — außerhalb des Bereichs, unterhalb des Fixes. Das Tool
meldet dies explizit, statt es in den Standard-Zweig fallen zu lassen, der „sicher" wäre.
tools/gen_rules.py erstellt RuleTable.java direkt aus den GitHub-Advisories und weigert sich,
etwas auszugeben, es sei denn, fünf Annahmen gelten — einschließlich, dass die berechnete Schnittmenge wirklich
4.1.136.Final / 4.2.16.Final ist und dass diese auf Maven Central existieren, während eine Sentinel-Version 404 liefert.
tools/recheck_before_publish.py verifiziert die tragenden Behauptungen erneut über bewusst
unabhängige Quellen: NVD (nicht OSV — dessen Maven-Daten spiegeln GHSA), Maven Central und den Bytecode der echten
Jars. Der Bytecode-Check ist bidirektional: Das Fix-Marker muss in 4.1.136 vorhanden sein und
in 4.1.135 fehlen. Diese zweite Hälfte hat beim ersten Lauf einen fehlerhaften Check aufgedeckt.
mvn package # target/netty-http2-check-0.1.0.jar
mvn test # 23 Tests
MIT