
Strumento Java offline che analizza i jar e le versioni per determinare l'esposizione a sette CVE di netty-codec-http2, raccomandando l'unica versione corretta che risolve tutte.
Checker offline per le 7 CVE di io.netty:netty-codec-http2.
Ti dice a quali sei effettivamente esposto — e l'unica versione che le risolve tutte:
4.1.136.Final / 4.2.16.Final, un numero che non compare in nessuno dei sette advisory.
CVE-2025-55163 · CVE-2026-33871 · CVE-2026-47244 · CVE-2026-48043 · CVE-2026-50560 · CVE-2026-56819 · CVE-2026-59900
Un singolo jar, zero dipendenze runtime, completamente offline, Java 17+.
I sette advisory indicano ciascuno una versione di fix diversa. Sulla linea 4.1 sono 124 / 132 / 135 / 135 / 135 / 136 / 136. Segui un singolo advisory e sei comunque all'interno dell'intervallo affetto degli altri. La versione che risolve tutte e sette va calcolata — e non è scritta su nessuno di essi.
Lo stesso vale, con numeri completamente diversi, sulla linea 4.2 (4 / 11 / 15 / 15 / 15 / 16 / 16).
Chi è fermo su 4.2.15.Final ha risolto cinque delle sette e spesso presume di essere "sulla nuova linea".
pom.xml — di propositoSe usi Spring WebFlux, netty-codec-http2 arriva tramite
spring-boot-starter-webflux
-> spring-boot-starter-reactor-netty
-> reactor-netty-http
-> netty-codec-http2
L'artifactId non compare mai nel tuo pom.xml. Un controllo basato sul pom risponde "non lo uso",
il che è sbagliato. Questo strumento legge i jar che vengono realmente distribuiti.
java -jar netty-http2-check.jar target/ # scansiona l'output di build
java -jar netty-http2-check.jar myapp.jar # fat-jar / war Spring Boot, jar annidati inclusi
java -jar netty-http2-check.jar --version 4.1.100.Final # giudica direttamente una versione
java -jar netty-http2-check.jar --table # stampa la tabella completa delle regole
--utf8 / --gbk se l'output è illeggibile su console Windows.
Esempio:
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. Solo CVE-2025-55163, CVE-2026-33871 e
CVE-2026-56819 sono classificate high. Lo strumento stampa ogni severità separatamente e dovresti fare lo stesso.grpc-netty-shaded viene rilevato, ma solo CVE-2025-55163 elenca quella coordinata.
"L'advisory non la elenca" non significa "non è affetta".CVE-2026-33871 sulla linea 4.2: l'intervallo affetto è < 4.2.10.Final, ma il fix dichiarato è
4.2.11.Final. 4.2.10 cade tra i due — fuori dall'intervallo, sotto il fix. Lo strumento
lo segnala esplicitamente invece di lasciarlo cadere nel ramo predefinito, che è "sicuro".
tools/gen_rules.py costruisce RuleTable.java direttamente dagli advisory GitHub e rifiuta di
emettere qualsiasi cosa a meno che cinque asserzioni non siano verificate — inclusa quella che l'intersezione calcolata sia davvero
4.1.136.Final / 4.2.16.Final, e che queste esistano su Maven Central mentre una versione sentinella restituisce 404.
tools/recheck_before_publish.py riverifica le affermazioni portanti tramite fonti deliberatamente
non correlate: NVD (non OSV — i suoi dati Maven rispecchiano GHSA), Maven Central e il bytecode dei jar
reali. Il controllo del bytecode è bidirezionale: il marcatore di fix deve essere presente in 4.1.136 e
assente in 4.1.135. Questa seconda metà ha individuato un controllo errato al primo tentativo.
mvn package # target/netty-http2-check-0.1.0.jar
mvn test # 23 test
MIT