
CVE-2026-2332 और 4 अन्य 2026 Jetty CVE: आपका Jetty (या Spring Boot) बिल्ड किससे टकराता है, और क्या Jetty द्वारा बताया गया फिक्स्ड वर्ज़न Maven Central पर मौजूद भी है? 9.4/10/11 EOL लाइनों के लिए जवाब है 'उपलब्धता के लिए विवरण देखें' = 404।
आपके इस Jetty (या Spring Boot के साथ आए Jetty) में 2026 की इन छह CVE में से कौन-कौन सी हैं — और जिस संस्करण को अपग्रेड करने के लिए आधिकारिक रूप से कहा गया है, वह Maven Central पर वास्तव में मौजूद है या नहीं?
मुख्य विषय CVE-2026-2332 (GHSA-355h-qmc2-wpwf, high / CVSS v3 7.4): jetty-http का chunked अनुरोध तस्करी (request smuggling)।
2026-09-17 को आधिकारिक रूप से इसी परिवार का CVE-2026-19203 (LF EXT.TERM तस्करी, high / CVSS v4 8.3) भी जारी किया गया: इसकी 9.4 श्रृंखला 9.4.63 तक कवर करती है,
आधिकारिक रूप से 9.4.64 पर अपग्रेड करने के लिए कहा गया है — और 9.4.64 भी Central पर 404 है।
सबसे पक्का तथ्य: 9.4 / 10 / 11 इन तीनों EOL पुरानी श्रृंखलाओं के सार्वजनिक फिक्स संस्करण वास्तव में मौजूद ही नहीं हैं — आधिकारिक सुरक्षा पृष्ठ पर इनके लिए एक-एक करके लिखा है
see details for availability (= व्यावसायिक सहायता), और उन संस्करण संख्याओं का Maven Central पर परीक्षण करने पर सभी 404 निकले।
java -jar jetty-line-check.jar /path/to/jetty # 解压部署的 Jetty(扫 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 # 只看六条 CVE × 模块 × 版本线的判定表
java -jar jetty-line-check.jar --utf8 ... # Windows 控制台中文乱码时加
सहयोगी प्रोजेक्ट tomcat-line-check का मानदंड है "jar में कोई निश्चित फ़िक्स क्लास है या नहीं", क्योंकि Tomcat के उस फ़िक्स ने एक नया क्लास जोड़ा था।
Jetty की ये पंक्तियाँ ऐसा नहीं कर सकतीं। मुख्य CVE-2026-2332 का फ़िक्स HttpParser के मेथड बॉडी को बदलता है, कोई नया क्लास नहीं जोड़ता
(निर्माण से पहले gh api compare + javap से पुष्टि की गई थी)। इसलिए मानदंड केवल यह हो सकता है:
आपका पूर्ण निर्देशांक + संस्करण रेखा, किन CVE पर लागू होती है; और आधिकारिक रूप से नामित फ़िक्स्ड संस्करण Maven Central पर वास्तव में मौजूद है या नहीं।
निर्णय तालिका tools/gen_table.py द्वारा छह GitHub advisory के vulnerabilities[] + Maven Central वास्तविक jar HEAD प्रोबिंग से उत्पन्न होती है,
सात समूह के दावे (सकारात्मक नियंत्रण / मुख्य दावा / पुरानी रेखा का अंतिम संस्करण / सेंटिनल / मुख्य संरचना / विभाजित मॉड्यूल / रेटिंग) पास न हों तो तालिका बनाने से इनकार कर दिया जाता है।
| तीन अवस्थाएँ | अर्थ |
|---|---|
PUBLIC | advisory ने फ़िक्स्ड संस्करण का नाम दिया है, और वह वास्तव में Maven Central पर है —— सार्वजनिक रूप से अपग्रेड करने योग्य |
404 | advisory ने फ़िक्स्ड संस्करण का नाम दिया है, लेकिन वह Central पर 404 है —— आधिकारिक सुरक्षा पृष्ठ पर see details for availability (व्यावसायिक सहायता) लिखा है |
无 | advisory ने इस रेखा के लिए फ़िक्स्ड संस्करण बिल्कुल नहीं दिया (first_patched_version खाली है) —— इस रेखा को ठीक करने के लिए केवल बड़े संस्करण में अपग्रेड करना होगा |
पुरानी रेखाओं (9.4 / 10.0 / 11.0) का वह पूरा हिस्सा 404 और 无 ही इस टूल का मूल्य है। पूरी तस्वीर देखने के लिए --table चलाएँ।
org.eclipse.jetty की reviewed advisory, 2026 में)| CVE | मॉड्यूल | रेटिंग | एक पंक्ति में |
|---|---|---|---|
| CVE-2026-2332 | jetty-http | high / v3 7.4 | ⭐ मुख्य: chunked quoted-string में \r\n को chunk हेडर का अंत मान लिया गया → अनुरोध तस्करी (CWE-444) |
| CVE-2026-19203 | jetty-http | high / v4 8.3 | ⭐ 2332 का ही वंशज (09-17): chunk एक्सटेंशन में \n (LF) को chunk हेडर का अंत मान लिया गया → तस्करी (LF EXT.TERM); 9.4 लाइन 9.4.63 तक कवर |
| CVE-2026-5795 | jaspi (12.x में ee8/9/10/11-jaspi में विभाजित) | high / v3 7.4 | JASPI का ThreadLocal साफ़ नहीं हुआ → अनधिकृत पहुँच |
| CVE-2026-6790 | jetty-server | medium / v3 5.3 | HTTP/2·3 के Host / :authority में भ्रम |
| CVE-2026-10050 | jetty-security (12.x में ee8/9-security जोड़ा गया) | high / v4 8.7 | Digest प्रमाणीकरण में ISO-8859-1 प्रबंधन |
| CVE-2025-11143 | jetty-http | low / v3 3.7 | URI पार्सिंग में अंतर |
🔴 दो स्मगलिंग (2332 और 19203) का प्रभावित क्षेत्र टिकाऊ है (दोनों ServerConnector / HttpParser की इस डिफ़ॉल्ट पार्सिंग मुख्य पथ पर पड़ते हैं,
किसी विशेष सुविधा को सक्षम करने की आवश्यकता नहीं)। शेष चार को केवल निर्णय तालिका में एक पंक्ति के रूप में लें:
--table और स्कैन आउटपुट दोनों में), डिफ़ॉल्ट डिप्लॉयमेंट पर गलत रिपोर्ट न करें। 9.4 / 10 / 11 / 12.0 रेखाएँ डिफ़ॉल्ट रूप से ही प्रभावित हैं।CVE-2026-10050 (Digest) का प्रभावित क्षेत्र बहुत छोटा है —— केवल Digest प्रमाणीकरण स्पष्ट रूप से सक्षम करने पर ही सामना होगा, इसे मुख्य बिक्री बिंदु न बनाएँ।CVE-2026-6790 medium है, CVE-2025-11143 low है —— "उच्च जोखिम" कहकर सामान्यीकृत करना मना है।vulnerabilities खाली है,
Dependabot "यह छेद है" बता सकता है लेकिन "किस संस्करण तक अपग्रेड करें" नहीं बता सकता; सीमा केवल रिपॉज़िटरी-स्तरीय advisory में है। एक बार वैश्विक डेटाबेस में जुड़ जाए, यह वाक्य बदलना होगा।see details for availability लिखता है, बस इतना ही।GHSA-p2j5-5566-vpv9 के vulnerabilities खाली हैं)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 # 只跑断言,不写文件
python tools/gen_table.py # 断言全过才写 CveTable.java
python tools/recheck_before_publish.py # 发文当天重跑,主张失效就改文案别改判据
mvn package # 需要 JDK 17;运行时零依赖(JUnit 仅测试期)
| कोड | अर्थ |
|---|---|
0 | स्कैन पूरा हुआ, और हर फ़ाइल वास्तव में पढ़ ली गई |
2 | उपयोग त्रुटि (पाथ नहीं दिया गया) |
4 | कोई फ़ाइल पढ़ी नहीं जा सकी —— zip नहीं है, सामग्री कटी हुई है, या पढ़ने में विफलता |
🔴 4 का कारण: ट्रेल लोगों को दिखाने के लिए है, CI और स्क्रिप्ट एक्ज़िट कोड देखते हैं। इसके बिना, एक भ्रष्ट / एन्क्रिप्टेड / अधूरी डाउनलोड हुई jar चुपचाप "कोई समस्या नहीं मिली" में बदल जाएगी —— "मैं इसे पढ़ नहीं सकता" और "आप सुरक्षित हैं" दो अलग बातें होनी चाहिए।
⚠️ वैध खाली jar (एक 22-बाइट EOCD रिकॉर्ड) पढ़ने में असमर्थ नहीं मानी जाती, और 4 ट्रिगर नहीं करेगी।
MIT