
सुरक्षित, गैर-आक्रामक स्कैनर जो सामान्य और चंक्ड HTTP POST प्रतिक्रियाओं की तुलना करके FortiOS SSL VPN आउट-ऑफ-बाउंड राइट भेद्यता (CVE-2024-21762) का पता लगाता है।
| फ़ील्ड | मान |
|---|
| CVE | CVE-2024-21762 |
| परामर्श | FG-IR-24-015 |
| CVSS | 9.8 (गंभीर) |
| CWE | CWE-787 (आउट-ऑफ-बाउंड्स राइट) |
| CISA KEV | हाँ - जंगली में सक्रिय रूप से शोषण किया गया |
| हमला वेक्टर | नेटवर्क (अप्रमाणित) |
| प्रभावित घटक | sslvpnd (SSL VPN डेमन) |
FortiOS SSL VPN में एक आउट-ऑफ-बाउंड्स राइट कमजोरी एक दूरस्थ अप्रमाणित हमलावर को विशेष रूप से तैयार किए गए HTTP अनुरोधों के माध्यम से मनमाना कोड या कमांड निष्पादित करने की अनुमति देती है। यह कमजोरी sslvpnd के भीतर HTTP चंक्ड ट्रांसफर एन्कोडिंग पार्सर में मौजूद है। जब डेमन Transfer-Encoding: chunked के साथ एक POST अनुरोध प्राप्त करता है, तो यह चंक आकारों को ठीक से मान्य नहीं कर पाता, जिससे हीप में आउट-ऑफ-बाउंड्स राइट हो जाता है।
| शाखा | प्रभावित | ठीक किया गया |
|---|---|---|
| FortiOS 7.4 | 7.4.0 - 7.4.2 | 7.4.3 |
| FortiOS 7.2 | 7.2.0 - 7.2.6 | 7.2.7 |
| FortiOS 7.0 | 7.0.0 - 7.0.13 | 7.0.14 |
| FortiOS 6.4 | 6.4.0 - 6.4.14 | 6.4.15 |
| FortiOS 6.2 | 6.2.0 - 6.2.15 | 6.2.16 |
| FortiOS 6.0 | सभी संस्करण | स्थानांतरित करें |
स्क्रिप्ट एक मान्य एंडपॉइंट (/remote/logincheck) पर एक सामान्य POST अनुरोध बनाम Transfer-Encoding: chunked वाले POST अनुरोध के लिए सर्वर प्रतिक्रिया की तुलना करती है।
Content-Length के साथ: सर्वर अनुरोध को संसाधित करता है और एक HTTP प्रतिक्रिया (200 OK) लौटाता है।Transfer-Encoding: chunked के साथ: कमजोर संस्करणों पर, sslvpnd चंक्ड एन्कोडिंग को संभाल नहीं पाता और बिना प्रतिक्रिया दिए कनेक्शन बंद कर देता है (0 बाइट्स)।यह अंतर व्यवहार वास्तविक आउट-ऑफ-बाउंड्स राइट को ट्रिगर किए बिना कमजोरी की पुष्टि करता है।
Normal POST --> HTTP/1.1 200 OK (N bytes)
Chunked POST --> Connection closed (0 bytes) <-- VULNERABLE
Normal POST --> HTTP/1.1 200 OK (N bytes)
Chunked POST --> HTTP/1.1 200 OK (N bytes) <-- PATCHED
python cve_2024_21762_safecheck.py <host> <port>
$ python cve_2024_21762_safecheck.py 10.0.0.1 8443
[*] Target: 10.0.0.1:8443
[*] CVE-2024-21762 - Out-of-Bounds Write in sslvpnd (CVSS 9.8)
[*] Method: Compare normal POST vs chunked POST response
[*] Test 1: Normal POST to /remote/logincheck
Response: HTTP/1.1 200 OK
Size: 722 bytes
[*] Test 2: Chunked POST to /remote/logincheck
Response: empty (connection closed by server)
============================================================
[!] VULNERABLE to CVE-2024-21762
Normal POST works but chunked TE causes connection
drop -> sslvpnd cannot handle chunked TE
Severity: CRITICAL (CVSS 9.8)
CISA KEV: Yes (actively exploited in the wild)
============================================================
| परिणाम | अर्थ |
|---|---|
VULNERABLE | सामान्य POST प्रतिक्रिया देता है, चंक्ड POST कनेक्शन गिरा देता है |
PATCHED | दोनों अनुरोधों को HTTP प्रतिक्रिया मिलती है |
INCONCLUSIVE | किसी भी अनुरोध को प्रतिक्रिया नहीं मिली (दर सीमा सक्रिय हो सकती है, बाद में पुनः प्रयास करें) |
/remote/logincheck पर कई POST अनुरोधों के बाद दर सीमा सक्रिय कर सकता है। यदि आपको INCONCLUSIVE मिलता है, तो कुछ मिनट प्रतीक्षा करें और पुनः प्रयास करें।/remote/VULNCHECK का उपयोग करती हैं। वह पथ सभी FortiGate संस्करणों पर अपेक्षित 403 नहीं लौटा सकता, जिससे अविश्वसनीय परिणाम हो सकते हैं। यह स्क्रिप्ट /remote/logincheck का उपयोग करती है, जो एक ज्ञात मान्य SSL VPN एंडपॉइंट है।