
CVE-2024-40586 के लिए शोषण: यह एक कमजोर FortiClient नामित पाइप के माध्यम से विंडोज होस्ट को प्रमाणीकरण के लिए मजबूर करता है, जिससे SYSTEM तक विशेषाधिकार वृद्धि या रिले हमलों के माध्यम से पार्श्व गति संभव होती है।
विंडोज सिस्टम पर, यह पाया गया कि FortiClient (ऐप संस्करण 7.0.8.0427) एक दूरस्थ अविशेषाधिकार प्राप्त उपयोगकर्ता को FortiSSLVPNdaemon सेवा के लिए जिम्मेदार एक नामित पाइप के माध्यम से विंडोज होस्ट को अन्य मशीनों पर प्रमाणित करने के लिए मजबूर करने की अनुमति देता है।
यह देखा गया कि नामित पाइप "FortiSslvpnNamedPipe" किसी भी उपयोगकर्ता से पढ़ने और लिखने की अनुमति देता है।

ऐप नामित पाइप से बफर के 5वें बाइट को op कोड PipeBuffer+4 के रूप में पढ़ता है

यह देखा गया कि यदि op कोड 24 (अर्थात, 0x18) के बराबर है तो ऐप फ़ाइल पढ़ेगा
कोड प्रवाह: Case 24 => LABEL_26 => strncpy पेलोड को वेरिएबल Buffer में कॉपी करता है => पेलोड को sub_7FF60C3EAC20 पर पास करता है => CreateFileA को कॉल करता है => ReadFile



हालांकि, एप्लिकेशन फ़ाइल सामग्री के बारे में कुछ नहीं करता है।
हम कमजोर नामित पाइप "FortiSslvpnNamedPipe" पर एक क्राफ्टेड ट्रैफ़िक (अर्थात, "\x00\x00\x00\x00\x18\x00" को लक्ष्य पथ के साथ जोड़कर) भेज सकते हैं ताकि op कोड 24 ट्रिगर हो और प्रक्रिया "FortiSSLVPNdaemon.exe" को SYSTEM विशेषाधिकार के साथ CreateFileA कॉल करने के लिए मजबूर कर सकें। इसलिए, हम सर्वर को UNC पथ (जैसे, "\\<रिमोट आईपी>\<फ़ाइल पथ>") सबमिट करके रिमोट फ़ाइल से कनेक्ट करने या स्थानीय नामित पाइप (जैसे, "\\127.0.0.1\pipe\<नामित पाइप>") से कनेक्ट करने के लिए मजबूर कर सकते हैं।
एक दूरस्थ अप्रमाणित उपयोगकर्ता के साथ विंडोज होस्ट को अन्य मशीनों पर प्रमाणित करने के लिए मजबूर करने के लिए, उपयोगकर्ता निम्नलिखित चरण का पालन कर सकता है:

एक स्थानीय उपयोगकर्ता से "SeImpersonatePrivilege" (जैसे, "nt authority\network service") के साथ SYSTEM तक विशेषाधिकार वृद्धि करने के लिए, उपयोगकर्ता निम्नलिखित चरणों का पालन कर सकता है:
ImpersonateNamedPipeClient() को कॉल करें।