
सुरक्षित रूप से पता लगाएं कि क्या कोई SolarWinds Serv-U होस्ट CVE-2026-28318 के लिए असुरक्षित है।
एक सुरक्षित, गैर-विनाशकारी डिटेक्टर CVE-2026-28318 के लिए, जो SolarWinds Serv-U <= 15.5.4.108 में एक असत्यापित डिनायल-ऑफ-सर्विस है। एक एकल POST जो Content-Encoding: deflate और एक बॉडी लेकर आता है, उस बॉडी को इन-मेमोरी deflate डीकंप्रेसर (CZLibCompression) को फीड करता है जिसका बफर प्रबंधन एक अमान्य free() करता है, जिससे Serv-U सर्विस प्रक्रिया समाप्त हो जाती है। (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, CWE-763.)
यह स्क्रिप्ट लक्ष्य को क्रैश नहीं करती। यह प्रति होस्ट एक प्रश्न का उत्तर देती है: क्या 15.5.4 HF1 फिक्स गायब है? यह इस बात का सटीक प्रॉक्सी है कि सर्वर CVE-2026-28318 के लिए असुरक्षित है या नहीं।
हाँ। यही टूल का पूरा उद्देश्य है, और इसे प्रोडक्शन के विरुद्ध चलाना सुरक्षित है:
deflate नहीं भेजता। deflate एकमात्र Content-Encoding मान है जो असुरक्षित डीकंप्रेसर को शुरू करता है। स्क्रिप्ट एक सुरक्षित Content-Encoding: identity और एक छोटी बॉडी के साथ एक एकल POST भेजती है, जो कभी क्रैश करने वाले कोड पथ तक नहीं पहुँचती।15.5.4.125) एक बॉडी और एक गैर-खाली Content-Encoding वाले किसी भी अनुरोध को 415 अनसमर्थित मीडिया प्रकार के साथ अस्वीकार करता है। असुरक्षित बिल्ड में ऐसा कोई गेट नहीं है और वे identity प्रोब को सामान्य रूप से संभालते हैं। इसलिए फैसला पूरी तरह से स्थिति कोड पर निर्भर करता है, और सेवा कभी अस्थिर नहीं होती।स्क्रिप्ट साइट रूट पर एक सुरक्षित POST भेजती है और स्थिति कोड पढ़ती है:
लक्ष्य को प्रोब प्रतिक्रिया के अपने Server हेडर से Serv-U के रूप में पहचाना जाता है, इसलिए किसी अलग पहचान अनुरोध की आवश्यकता नहीं है।
यह साबित करता है कि फिक्स गायब है; यह पुष्टि करने के लिए सेवा को क्रैश नहीं करता।
VULNERABLEफैसले का मतलब है कि HF1 इनपुट-वैलिडेशन गेट अनुपस्थित है, जो इस CVE के लिए एक सटीक प्रॉक्सी है। स्क्रिप्ट जानबूझकर वहाँ रुक जाती है बजाय क्रैश करने वालेdeflateमान को भेजने के।
# single host (scheme defaults to https://)
./cve_2026_28318_check.py 10.0.0.5
# explicit URL / port
./cve_2026_28318_check.py https://10.0.0.5:443
# several hosts at once
./cve_2026_28318_check.py host-a:443 host-b https://host-c
# scan a list, one target per line ('#' comments allowed), compact output
./cve_2026_28318_check.py -f targets.txt --brief
# machine-readable output for pipelines
./cve_2026_28318_check.py -f targets.txt --json > results.json
एक असुरक्षित Serv-U सर्वर ( [!] मार्कर और VULNERABLE TTY पर लाल रंग में दिखते हैं):
$ ./cve_2026_28318_check.py https://10.0.0.5
[!] https://10.0.0.5: VULNERABLE [missing-415-gate]
Serv-U returned 401 (not 415) to the identity probe, so the HF1 415 gate is ABSENT (build <= 15.5.4.108) and CVE-2026-28318 is unpatched. This proves the fix is missing; it does NOT crash the service. Apply 15.5.4 HF1 (build 15.5.4.125+).
एक पैच किया गया सर्वर PATCHED लौटाता है (HF1 415 गेट ने आइडेंटिटी प्रोब का उत्तर दिया):
$ ./cve_2026_28318_check.py https://10.0.0.6
[+] https://10.0.0.6: PATCHED [hf1-415-gate]
Serv-U returned 415 to the identity probe, so the 15.5.4 HF1 input-validation gate is present (build >= 15.5.4.125). Not vulnerable to CVE-2026-28318.
एक सूची स्कैन करें, प्रति होस्ट एक संरेखित पंक्ति (--brief). यदि कोई भी होस्ट VULNERABLE है तो निकास स्थिति 1 है, अन्यथा 0, जो स्क्रिप्ट में उपयोगी है:
$ ./cve_2026_28318_check.py -f targets.txt --brief; echo "exit: $?"
VULNERABLE https://10.0.0.5 missing-415-gate
PATCHED https://10.0.0.6 hf1-415-gate
NOT-SERV-U https://10.0.0.7 not-servu
ERROR https://10.0.0.8 no-response
exit: 1
पाइपलाइनों के लिए मशीन-पठनीय आउटपुट (--json):
$ ./cve_2026_28318_check.py https://10.0.0.5 --json
[
{
"target": "https://10.0.0.5",
"verdict": "VULNERABLE",
"reason": "missing-415-gate",
"detail": "Serv-U returned 401 (not 415) to the identity probe, so the HF1 415 gate is ABSENT (build <= 15.5.4.108) and CVE-2026-28318 is unpatched. This proves the fix is missing; it does NOT crash the service. Apply 15.5.4 HF1 (build 15.5.4.125+)."
}
]
| कोड | अर्थ |
|---|---|
0 | कोई लक्ष्य VULNERABLE नहीं था |
1 | कम से कम एक लक्ष्य VULNERABLE है |
2 |
Server हेडर को हटा सकता है (NOT-SERV-U के रूप में रिपोर्ट किया गया) या अपने स्वयं के 415 के साथ उत्तर दे सकता है (संभावित गलत PATCHED). टूल को सीधे Serv-U प्रबंधन इंटरफ़ेस पर इंगित करें जहाँ संभव हो।VULNERABLE फैसला साबित करता है कि HF1 इनपुट-वैलिडेशन फिक्स अनुपस्थित है; यह क्रैश प्रदर्शित नहीं करता (डिज़ाइन द्वारा)। वह गेट इस CVE के लिए एक सटीक प्रॉक्सी है।SolarWinds Serv-U 15.5.4 हॉटफिक्स 1 (बिल्ड 15.5.4.125) या बाद में अपग्रेड करें, जो इनपुट-वैलिडेशन गेट जोड़ता है जो एक बॉडी और एक गैर-खाली Content-Encoding दोनों ले जाने वाले अनुरोध को अस्वीकार करता है। जब तक आप पैच नहीं कर सकते, Serv-U सेवा तक नेटवर्क पहुँच को विश्वसनीय स्रोतों तक सीमित करें।
यह कोड MIT लाइसेंस के अंतर्गत वितरित किया गया है।
इस टूल का उपयोग पूर्व आपसी सहमति के बिना लक्ष्यों पर हमला करने के लिए अवैध है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स कोई देयता नहीं मानते हैं और इस प्रोग्राम के कारण किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।
identity प्रोब प्रतिक्रिया | फैसला | अर्थ |
|---|
Serv-U सर्वर हेडर, स्थिति ≠ 415 (जैसे 401 / 404 / 200 / 302) | VULNERABLE [missing-415-gate] | HF1 415 गेट अनुपस्थित है, इसलिए बिल्ड <= 15.5.4.108, CVE-2026-28318 अनपैच्ड। |
Serv-U सर्वर हेडर, स्थिति = 415 | PATCHED [hf1-415-gate] | HF1 इनपुट-वैलिडेशन गेट मौजूद, इसलिए बिल्ड >= 15.5.4.125। असुरक्षित नहीं। |
प्रतिक्रिया दी, लेकिन कोई Serv-U सर्वर हेडर नहीं | NOT-SERV-U [not-servu] | Serv-U सर्वर नहीं, या प्रॉक्सी ने हेडर हटा दिया। |
| कोई उपयोगी प्रतिक्रिया / कनेक्शन विफलता | ERROR [no-response] | कोई HTTP सेवा पहुँच योग्य नहीं, फ़िल्टर्ड, TLS त्रुटि, या टाइमआउट। |
| फ़्लैग | विवरण |
|---|
targets | एक या अधिक HOST[:PORT] या URL (स्कीम डिफ़ॉल्ट https://) |
-t, --target TARGET | एक लक्ष्य जोड़ें (दोहराने योग्य) |
-f, --file FILE | फ़ाइल से लक्ष्य पढ़ें (प्रति पंक्ति एक; # टिप्पणियाँ) |
-b, --brief | प्रति लक्ष्य एक संरेखित पंक्ति, अनेक होस्ट की स्कैनिंग के लिए आदर्श |
--json | संरचित JSON परिणाम उत्पन्न करें |
--no-color | रंगीन आउटपुट अक्षम करें (NO_COLOR और गैर-TTY का भी सम्मान करता है) |
--timeout SECS | प्रति-प्रोब टाइमआउट (डिफ़ॉल्ट: 10) |
-v, --verbose | भेजे गए प्रोब और कच्चे प्रतिक्रिया हेडर दिखाएँ |
| फैसला | कारण टैग | अर्थ |
|---|
VULNERABLE | missing-415-gate | बिना HF1 415 गेट के Serv-U सर्वर, इसलिए बिल्ड <= 15.5.4.108, CVE-2026-28318 अनपैच्ड। तुरंत पैच करें। |
PATCHED | hf1-415-gate | Serv-U सर्वर जो आइडेंटिटी प्रोब का 415 के साथ उत्तर देता है, इसलिए HF1 फिक्स मौजूद (बिल्ड >= 15.5.4.125). |
NOT-SERV-U | not-servu | प्रतिक्रिया दी, लेकिन कोई Serv-U सर्वर हेडर नहीं; Serv-U नहीं, या प्रॉक्सी ने हटा दिया। |
ERROR | no-response | कोई उपयोगी HTTP प्रतिक्रिया नहीं (उस पोर्ट पर कोई सेवा नहीं, फ़िल्टर्ड, TLS त्रुटि, या टाइमआउट)। |
ERROR | bad-target | लक्ष्य तर्क पार्स नहीं किया जा सका। |
| उपयोग त्रुटि (गलत तर्क / अपठनीय लक्ष्य फ़ाइल) |