
أداة Java تعمل دون اتصال بالإنترنت تقوم بفحص ملفات jar والإصدارات لتحديد مدى التعرض لسبع ثغرات CVE في netty-codec-http2، مع التوصية بالإصدار المُصحَّح الوحيد الذي يعالجها جميعًا.
أداة فحص دون اتصال لثغرات io.netty:netty-codec-http2 السبع (CVEs).
تخبرك أيّها معرّض لها فعليًا — والإصدار الوحيد الذي يصلحها جميعًا:
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 يجيب "أنا لا أستخدمه"،
وهذا غير صحيح. هذه الأداة تقرأ ملفات jar التي تُشحن فعليًا.
java -jar netty-http2-check.jar target/ # فحص مخرجات البناء
java -jar netty-http2-check.jar myapp.jar # Spring Boot fat-jar / war، مع تضمين ملفات jar المتداخلة
java -jar netty-http2-check.jar --version 4.1.100.Final # الحكم على إصدار مباشرة
java -jar netty-http2-check.jar --table # طباعة جدول القواعد الكامل
استخدم --utf8 / --gbk إذا كان المخرجات مشوّهة على وحدة تحكم Windows.
مثال:
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 يذكر هذا التنسيق.
"النشرة لا تذكره" ليس معناه "غير متأثر".CVE-2026-33871 على خط الإصدارات 4.2: النطاق المتأثر هو < 4.2.10.Final، لكن الإصلاح المذكور هو
4.2.11.Final. 4.2.10 يقع بينهما — خارج النطاق، وأقل من الإصلاح. الأداة
تبلغ عن ذلك صراحةً بدلًا من تركه يسقط في الفرع الافتراضي، وهو "آمن".
tools/gen_rules.py يبني RuleTable.java مباشرةً من نشرات GitHub الأمنية ويرفض
إخراج أي شيء ما لم تتحقق خمسة افتراضات — بما في ذلك أن التقاطع المحسوب هو فعلًا
4.1.136.Final / 4.2.16.Final، وأن تلك الإصدارات موجودة على Maven Central بينما إصدار حارس (sentinel) يُرجع 404.
tools/recheck_before_publish.py يعيد التحقق من الادعاءات الجوهرية عبر مصادر
مختلفة عمدًا: NVD (وليس OSV — لأن بيانات Maven فيه تعكس GHSA)، وMaven Central، والبايت كود الفعلي
لملفات jar. فحص البايت كود ثنائي الاتجاه: علامة الإصلاح يجب أن تكون موجودة في 4.1.136 وغائبة
في 4.1.135. هذا النصف الثاني اكتشف فحصًا خاطئًا في التشغيل الأول.
mvn package # target/netty-http2-check-0.1.0.jar
mvn test # 23 اختبارًا
MIT