
ऑफ़लाइन Java टूल जो jars और versions को स्कैन करके सात netty-codec-http2 CVEs के संपर्क का निर्धारण करता है, और एकमात्र पैच किया गया संस्करण सुझाता है जो सभी को ठीक करता है।
7 io.netty:netty-codec-http2 CVE के लिए ऑफ़लाइन जाँचकर्ता।
आपको बताता है कि आप वास्तव में किन-किन से प्रभावित हैं — और वह एकमात्र संस्करण जो इन सभी को ठीक करता है:
4.1.136.Final / 4.2.16.Final, एक संख्या जो सातों एडवाइज़री में से किसी पर भी नहीं लिखी है।
CVE-2025-55163 · CVE-2026-33871 · CVE-2026-47244 · CVE-2026-48043 · CVE-2026-50560 · CVE-2026-56819 · CVE-2026-59900
एकल jar, शून्य रनटाइम निर्भरताएँ, पूर्णतः ऑफ़लाइन, Java 17+।
सातों एडवाइज़री में से प्रत्येक एक अलग फिक्स संस्करण बताती है। 4.1 लाइन पर वे हैं 124 / 132 / 135 / 135 / 135 / 136 / 136। किसी एक एडवाइज़री का पालन करें और आप अभी भी बाकी की प्रभावित सीमा के भीतर हैं। वह संस्करण जो सभी सातों को साफ़ करता है, उसकी गणना करनी होती है — और वह उनमें से किसी पर भी नहीं लिखा है।
यही बात, पूरी तरह से अलग संख्याओं के साथ, 4.2 लाइन पर भी सत्य है (4 / 11 / 15 / 15 / 15 / 16 / 16)।
जो लोग 4.2.15.Final पर बैठे हैं, उन्होंने सात में से पाँच ठीक कर लिए हैं और अक्सर मान लेते हैं कि वे "नई लाइन पर" हैं।
pom.xml को स्कैन नहीं करता — जानबूझकरयदि आप Spring WebFlux का उपयोग करते हैं, तो netty-codec-http2 इस प्रकार आता है
spring-boot-starter-webflux
-> spring-boot-starter-reactor-netty
-> reactor-netty-http
-> netty-codec-http2
artifactId आपके pom.xml में कभी नहीं दिखता। pom-आधारित जाँच उत्तर देती है "मैं इसका उपयोग नहीं करता",
जो गलत है। यह उपकरण उन jars को पढ़ता है जो वास्तव में शिप होते हैं।
java -jar netty-http2-check.jar target/ # बिल्ड आउटपुट स्कैन करें
java -jar netty-http2-check.jar myapp.jar # Spring Boot fat-jar / war, नेस्टेड jars सहित
java -jar netty-http2-check.jar --version 4.1.100.Final # किसी संस्करण का सीधे मूल्यांकन करें
java -jar netty-http2-check.jar --table # पूर्ण नियम तालिका प्रिंट करें
--utf8 / --gbk यदि Windows कंसोल पर आउटपुट mojibake है।
उदाहरण:
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 हैं। केवल CVE-2025-55163, CVE-2026-33871 और
CVE-2026-56819 को high रेट किया गया है। उपकरण प्रत्येक गंभीरता को अलग से प्रिंट करता है और आपको भी ऐसा करना चाहिए।grpc-netty-shaded का पता लगाया जाता है, लेकिन केवल CVE-2025-55163 उस कोऑर्डिनेट को सूचीबद्ध करता है।
"एडवाइज़री इसे सूचीबद्ध नहीं करती" का अर्थ "यह प्रभावित नहीं है" नहीं है।4.2 लाइन पर CVE-2026-33871: प्रभावित सीमा < 4.2.10.Final है, लेकिन बताया गया फिक्स
4.2.11.Final है। 4.2.10 इन दोनों के बीच आता है — सीमा के बाहर, फिक्स से नीचे। उपकरण
इसे स्पष्ट रूप से रिपोर्ट करता है, इसे डिफ़ॉल्ट शाखा में गिरने देने के बजाय, जो "सुरक्षित" है।
tools/gen_rules.py GitHub एडवाइज़री से सीधे RuleTable.java बनाता है और जब तक पाँच अभिकथन सत्य न हों, कुछ भी उत्सर्जित करने से इनकार करता है — जिसमें यह भी शामिल है कि गणना किया गया प्रतिच्छेदन वास्तव में
4.1.136.Final / 4.2.16.Final है, और वे Maven Central पर मौजूद हैं जबकि एक सेंटिनल संस्करण 404 देता है।
tools/recheck_before_publish.py जानबूझकर असंबंधित स्रोतों के माध्यम से भार-वहन करने वाले दावों को फिर से सत्यापित करता है: NVD (OSV नहीं — इसका Maven डेटा GHSA को दर्पण करता है), Maven Central, और वास्तविक jars का
बाइटकोड। बाइटकोड जाँच दो-दिशात्मक है: फिक्स मार्कर 4.1.136 में मौजूद होना चाहिए और
4.1.135 में अनुपस्थित होना चाहिए। उस दूसरे आधे हिस्से ने पहले रन पर एक खराब जाँच को पकड़ा।
mvn package # target/netty-http2-check-0.1.0.jar
mvn test # 23 परीक्षण
MIT