सारांश
भेद्यता: बैरियर डेमॉन TCP पोर्ट 24801 के माध्यम से SYSTEM तक अनप्रमाणित IPC स्थानीय विशेषाधिकार वृद्धि
विक्रेता: debauchee (बैरियर प्रोजेक्ट)
उत्पाद: Barrier 2.4.0 (अंतिम रिलीज़, 2021-11-01)
CWE: CWE-306: महत्वपूर्ण कार्य के लिए लापता प्रमाणीकरण
विवरण
बैरियर की विंडोज़ सेवा (barrierd.exe), जो LocalSystem के रूप में स्थापित और चलती है, 127.0.0.1:24801 पर एक TCP IPC नियंत्रण सर्वर बाँधती है — बिना किसी प्रमाणीकरण, बिना क्लाइंट पहचान सत्यापन और बिना किसी अभिगम नियंत्रण के। कोई भी स्थानीय प्रक्रिया, चाहे उसका विशेषाधिकार स्तर कुछ भी हो, इस पोर्ट से कनेक्ट कर सकती है और एक kIpcCommand ("ICMD") संदेश भेज सकती है जिसमें एक मनमाना कमांड लाइन और एक 1-बाइट "elevate" फ़्लैग होता है। यह winlogon.exe का SYSTEM प्राथमिक टोकन डुप्लिकेट करता है और बस, आपका कोड NT AUTHORITY\SYSTEM के रूप में चल जाता है। जैसा कि POC दर्शाता है, आप एक नई cmd.exe विंडो भी प्रकट कर सकते हैं जो SYSTEM के रूप में चलती है।
पुनरुत्पादन के चरण
- ऐसे Windows होस्ट पर निम्न-विशेषाधिकार वाला स्थानीय कोड निष्पादन प्राप्त करें जिस पर बैरियर सेवा (barrierd.exe, LocalSystem) स्थापित और चालू है।
- 127.0.0.1:24801 पर TCP कनेक्शन खोलें।
- IPC हैलो भेजें: b"IHEL" + b"\x00" (kIpcClientGui के रूप में पहचान करता है)।
- कमांड संदेश भेजें: b"ICMD" + struct.pack(">I", len(cmd)) + cmd.encode("utf-8") + b"\x01" (elevate=1), जहाँ cmd = " -d x /c " (एक बार चलने वाले कमांड के लिए) या " -d x /k " (डेमॉन के वॉचडॉग पुनः-प्रारंभ लूप से बचने के लिए, यदि payload स्वयं किसी प्रक्रिया को जीवित नहीं रखता — जैसे
start का उपयोग करके दृश्य विंडो प्रकट करते समय)। "-d x" उपसर्ग अनिवार्य है ताकि साथ वाले NULL-deref बग के कारण डेमॉन क्रैश न हो।
- barrierd.exe का वॉचडॉग थ्रेड सक्रिय कंसोल सत्र की गणना करता है, winlogon.exe को खोलता है और उसका SYSTEM प्राथमिक टोकन डुप्लिकेट करता है।
- CreateProcessAsUser(systemToken, NULL, cmd, ...) हमलावर के कमांड को NT AUTHORITY\SYSTEM के रूप में प्रारंभ करता है -- cmd.exe का अपना लचीला स्विच पार्सर आरंभिक "-d x" शोर को अनदेखा करता है और "/c"/"/k" को सही ढंग से "शेष को कमांड के रूप में चलाएँ" के रूप में मानता है।
- स्थिरता (PERSISTENCE): निष्पादित कमांड स्वचालित रूप से सहेज लिया जाता है और हमलावर की किसी और कार्रवाई के बिना, प्रत्येक सेवा पुनःप्रारंभ/रीबूट पर SYSTEM के रूप में पुनः निष्पादित होगा — जब तक कि खाली कमांड भेजकर या HKLM\SOFTWARE\Barrier को सीधे संपादित करके इसे स्पष्ट रूप से साफ़ न किया जाए।
प्रभावित कोड
- src/lib/ipc/IpcClientProxy.cpp - कमांड + elevate बाइट
- src/lib/ipc/IpcServer.cpp - IPC स्वीकार (accept) पथ पर कोई प्रमाणीकरण नहीं
- src/lib/barrier/win32/DaemonApp.cpp - परिणामों को त्याग देता है और कमांड को रजिस्ट्री HKLM\SOFTWARE\Barrier में स्थायी रूप से सहेजता है
- src/lib/platform/MSWindowsWatchdog.cpp - SYSTEM टोकन प्राप्त किया गया
कोड: https://github.com/debauchee/barrier/releases/tag/v2.4.0
प्रूफ-ऑफ-कॉन्सेप्ट (POC) या घर जाइए
यह साबित करने के लिए कि यह वास्तविक है, एक प्रूफ-ऑफ-कॉन्सेप्ट (POC) शामिल किया गया है।
POC -- Debauchee_Barrier_Privesc.py

प्रभाव
एक हमलावर इस भेद्यता का शोषण करके SYSTEM-स्तरीय विशेषाधिकार प्राप्त कर सकता है। इससे भी बुरी बात यह है कि निष्पादित कमांड पुनःप्रारंभ/स्टार्ट पर स्वचालित रूप से चल जाएगा।
अनुशंसित समाधान
बैरियर अनुरक्षित नहीं है और इसे कोई सुधार (fix) नहीं मिलेगा। जो संगठन अब भी बैरियर चला रहे हैं, वे Deskflow (सक्रिय रूप से अनुरक्षित उत्तराधिकारी) के पैच किए गए बिल्ड में स्थानांतरित हो जाएँ, जो CVE-2026-41477 / GHSA-6rx5-g478-775c में समान भेद्यता को संबोधित करता है।
प्रकटीकरण समयरेखा
- 20 अप्रैल, 2026 -- खोजा गया। यह अनुरक्षित नहीं है और रिपोर्ट करने के लिए कोई नहीं है।
- 25 जुलाई, 2026 -- NoCVE से संपर्क करना उचित समझा क्योंकि इस प्रोजेक्ट को संभावित रूप से फोर्क किया जा सकता है।