flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection
CVE-2026-1731: BeyondTrust कमांड इंजेक्शन
CVE-2026-1731 बिना लॉगिन WebSocket से BeyondTrust Remote Support/PRA पर OS कमांड चलाने देती है। पैच लगाएँ और उजागर सिस्टम जाँचें।
मान लीजिए स्वागत कक्ष आगंतुक से संस्करण संख्या पूछता है, फिर उत्तर को ऐसे कैलकुलेटर में भेजता है जो केवल अंक जाँचने के बजाय सूत्र चलाता है। इनपुट डेटा से निर्देश बन सकता है। CVE-2026-1731 ने BeyondTrust सेवा में यही सीमा उजागर की; सुधार तुलना से पहले छोटी दशमलव संस्करण संख्या के अलावा सब अस्वीकार करता है।
इस पेज के मुख्य शब्द
CVE-2026-1731- BeyondTrust Remote Support और Privileged Remote Access में गंभीर, बिना प्रमाणीकरण वाला OS कमांड इंजेक्शन दोष।
thin-scc-wrapper- क्लाइंट प्रोटोकॉल पथ में प्रयुक्त BeyondTrust shell wrapper। Rapid7 के पैच विश्लेषण में दूसरे पक्ष से मिले संस्करण का प्रसंस्करण कमजोर सीमा है।
Bash अंकगणितीय मूल्यांकन- Bash के संख्यात्मक ऑपरेटर operands को अंकगणितीय अभिव्यक्तियों के रूप में मूल्यांकित करते हैं। इसलिए अविश्वसनीय पाठ डेटा और अभिव्यक्ति की सीमा पार कर सकता है।
CWE-78- OS कमांड में प्रयुक्त विशेष तत्वों को ठीक से निष्प्रभावी न करना; इसे OS कमांड इंजेक्शन भी कहते हैं।
CISA KEV- CISA की सूची जिसमें वास्तविक दुनिया में शोषण के प्रमाण वाली कमजोरियाँ दर्ज होती हैं।
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-78
- CISA KEV — जोड़ा गया 2026-02-13 — CVE-2026-1731
मूल कारण विश्लेषण (Root Cause)
BeyondTrust की फरवरी 2026 की सलाह CVE-2026-1731 को Remote Support और Privileged Remote Access में प्रमाणीकरण-पूर्व रिमोट कोड निष्पादन बताती है; इसमें CWE-78 और CVSS 4.0 स्कोर 9.9 दिया गया है। विशेष रूप से बनाए गए क्लाइंट अनुरोध साइट उपयोगकर्ता के संदर्भ में OS कमांड चला सकते थे। विक्रेता पैच के Rapid7 विश्लेषण में स्रोत-स्तरीय सीमा thin-scc-wrapper के WebSocket पथ में है: स्क्रिप्ट दूसरे पक्ष द्वारा नियंत्रित remoteVersion पढ़ती है और Bash संख्यात्मक ऑपरेटरों से तुलना करती है। ये तुलना अंकगणितीय मूल्यांकन करती हैं; साधारण संख्या न होने पर मान निष्क्रिय पाठ के बजाय अभिव्यक्ति के रूप में समझा जा सकता है। पैच तुलना से पहले एक या दो ASCII अंक (^[0-9]{1,2}$) अनिवार्य करता है। नीचे का कोड स्रोतों पर आधारित संक्षिप्त उदाहरण है, पूरा उत्पाद स्क्रिप्ट या शोषण का प्रमाण नहीं। BeyondTrust ने 10 फरवरी को शुरुआती प्रयास और 9 फरवरी से पहले पैच न किए गए, इंटरनेट-सामने वाले स्वयं-होस्टेड सिस्टम पर सीमित गतिविधि की सूचना दी। बाद में Google Threat Intelligence Group ने कई समूहों द्वारा शोषण और अलग-अलग आगे की गतिविधियाँ बताईं। ये रिपोर्ट देखी गई गतिविधि का प्रमाण हैं; इससे यह निष्कर्ष नहीं निकलता कि सभी पीड़ितों पर एक जैसी श्रृंखला लागू हुई।
हमले का चरण-दर-चरण प्रवाह
सार्वजनिक appliance प्रोटोकॉल कनेक्शन स्वीकारता है
प्रभावित सेवा thin-client प्रोटोकॉल के लिए WebSocket पथ उपलब्ध कराती है। Rapid7 इसे बिना प्रमाणीकरण पहुँच योग्य बताता है; BeyondTrust इसे प्रमाणीकरण-पूर्व RCE मानता है।
दूसरा पक्ष प्रोटोकॉल संस्करण भेजता है
Wrapper कनेक्शन से दूरस्थ संस्करण पढ़ता है। यह अनुरोधकर्ता के नियंत्रण में है, विश्वसनीय स्थानीय कॉन्फ़िगरेशन नहीं।
Bash मान को अंकगणितीय operand मानता है
कमजोर तुलना Bash संख्यात्मक ऑपरेटरों का उपयोग करती है। Bash operands को अभिव्यक्ति की तरह मूल्यांकित करता है, इसलिए बिना सत्यापन वाला इनपुट साधारण पाठ बना रहे, यह सुनिश्चित नहीं है।
कमांड इंजेक्शन सेवा खाते के संदर्भ में चलता है
सफल शोषण BeyondTrust साइट उपयोगकर्ता के संदर्भ में OS कमांड चला सकता है। विक्रेता गोपनीयता, अखंडता और उपलब्धता पर प्रभाव को उच्च बताता है।
देखा गया शोषण आगे के जोखिम बढ़ाता है
BeyondTrust ने शुरुआती प्रयास और उजागर, बिना पैच वाले स्वयं-होस्टेड appliance पर सीमित गतिविधि बताई। GTIG ने बाद में कई समूह और आगे की कार्रवाइयाँ बताईं; हर रिपोर्ट विशिष्ट अभियान का प्रमाण है, सार्वभौमिक श्रृंखला का नहीं।
पैच तुलना से पहले जाँच करता है
पैच अमान्य दूरस्थ संस्करण को अस्वीकार करके wrapper को बंद करता है; केवल मान्य मान पर प्रोटोकॉल बातचीत आगे बढ़ती है। संबंधित पैच या संशोधित रिलीज़ लागू करें और कमजोर अवधि में उजागर प्रणालियों की जाँच करें।
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
Rapid7 के अनुसार BT26-02 पैच remoteVersion की तुलना से पहले एक या दो अंकों की जाँच जोड़ता है। अंश संक्षिप्त हैं और उत्पाद प्रोटोकॉल या अनुरोध विवरण शामिल नहीं करते। मुख्य नियम Bash अंकगणितीय मूल्यांकन से पहले सत्यापन है; केवल quotes लगाने से अंकगणितीय operands सुरक्षित नहीं होते। जहाँ संभव हो, shell-विहीन typed component में parse और compare करें तथा प्रोटोकॉल सीमा पर अमान्य मान अस्वीकार करें।
सोर्स अंश: thin-scc-wrapper — Rapid7 के विक्रेता-पैच विश्लेषण पर आधारित संक्षिप्त उदाहरण
# संक्षिप्त उदाहरण: remoteVersion दूसरे पक्ष से आता है।
read -r remoteVersion || exit 1
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
# किसी भी अंकगणितीय तुलना से पहले अप्रत्याशित इनपुट अस्वीकार करें।
read -r remoteVersion || exit 1
if [[ ! "$remoteVersion" =~ ^[0-9]{1,2}$ ]]; then
exit 1
fi
if [[ "$localVersion" -lt "$remoteVersion" ]]; then
version=$localVersion
else
version=$remoteVersion
fi
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓Remote Support और Privileged Remote Access के सभी appliances सूचीबद्ध करें, जिनमें स्वचालित अपडेट न पाने वाले स्वयं-होस्टेड सिस्टम भी हों।
- ✓BT26-02-RS लागू करें या Remote Support को 25.3.2 या बाद के संस्करण में अपग्रेड करें; BT26-02-PRA लागू करें या Privileged Remote Access को 25.1.1 या बाद के संस्करण में अपग्रेड करें। सटीक प्रक्रिया के लिए BeyondTrust की वर्तमान सलाह देखें।
- ✓यदि कोई स्वयं-होस्टेड सिस्टम 9 फरवरी 2026 तक इंटरनेट-सामने और बिना पैच था, तो BeyondTrust की घटना-प्रतिक्रिया सलाह मानें और अनधिकृत पहुँच, persistence, privilege escalation तथा डेटा पहुँच की जाँच करें।
- ✓नेटवर्क और एप्लिकेशन telemetry में अप्रत्याशित WebSocket सत्र तथा सेवा खाते द्वारा शुरू की गई असामान्य child processes या commands देखें; अलर्ट को appliance के सामान्य व्यवहार से मिलाएँ।
- ✓हर shell सीमा पर अंकगणितीय तुलना से पहले प्रोटोकॉल फ़ील्ड को सख्त allowlist से सत्यापित करें; अविश्वसनीय पाठ Bash अंकगणित,
evalया command string में न भेजें। - ✓खाली, बहुत लंबे, sign वाले, whitespace वाले और गैर-दशमलव संस्करणों के regression tests जोड़ें; तुलना या process launch से पहले इन्हें अस्वीकार करना अनिवार्य करें।