FlawOpen

flawopen.com/Teardowns/cve-2026-1731-beyondtrust-websocket-command-injection

● CVE-2026-1731 · CVSS v4 9.9[1] · अति गंभीर
सुरक्षा अनुसंधान · FlawOpen

CVE-2026-1731: BeyondTrust कमांड इंजेक्शन

CVE-2026-1731 बिना लॉगिन WebSocket से BeyondTrust Remote Support/PRA पर OS कमांड चलाने देती है। पैच लगाएँ और उजागर सिस्टम जाँचें।

CVSS वेक्टरCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:H/SA:L[1]
💡 आसान भाषा में (ELI5)

मान लीजिए स्वागत कक्ष आगंतुक से संस्करण संख्या पूछता है, फिर उत्तर को ऐसे कैलकुलेटर में भेजता है जो केवल अंक जाँचने के बजाय सूत्र चलाता है। इनपुट डेटा से निर्देश बन सकता है। 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 की सूची जिसमें वास्तविक दुनिया में शोषण के प्रमाण वाली कमजोरियाँ दर्ज होती हैं।

फ्रेमवर्क मैपिंग

मूल कारण विश्लेषण (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 ने कई समूहों द्वारा शोषण और अलग-अलग आगे की गतिविधियाँ बताईं। ये रिपोर्ट देखी गई गतिविधि का प्रमाण हैं; इससे यह निष्कर्ष नहीं निकलता कि सभी पीड़ितों पर एक जैसी श्रृंखला लागू हुई।

हमले का चरण-दर-चरण प्रवाह

चरण 1

सार्वजनिक appliance प्रोटोकॉल कनेक्शन स्वीकारता है

प्रभावित सेवा thin-client प्रोटोकॉल के लिए WebSocket पथ उपलब्ध कराती है। Rapid7 इसे बिना प्रमाणीकरण पहुँच योग्य बताता है; BeyondTrust इसे प्रमाणीकरण-पूर्व RCE मानता है।

चरण 2

दूसरा पक्ष प्रोटोकॉल संस्करण भेजता है

Wrapper कनेक्शन से दूरस्थ संस्करण पढ़ता है। यह अनुरोधकर्ता के नियंत्रण में है, विश्वसनीय स्थानीय कॉन्फ़िगरेशन नहीं।

चरण 3

Bash मान को अंकगणितीय operand मानता है

कमजोर तुलना Bash संख्यात्मक ऑपरेटरों का उपयोग करती है। Bash operands को अभिव्यक्ति की तरह मूल्यांकित करता है, इसलिए बिना सत्यापन वाला इनपुट साधारण पाठ बना रहे, यह सुनिश्चित नहीं है।

चरण 4

कमांड इंजेक्शन सेवा खाते के संदर्भ में चलता है

सफल शोषण BeyondTrust साइट उपयोगकर्ता के संदर्भ में OS कमांड चला सकता है। विक्रेता गोपनीयता, अखंडता और उपलब्धता पर प्रभाव को उच्च बताता है।

चरण 5

देखा गया शोषण आगे के जोखिम बढ़ाता है

BeyondTrust ने शुरुआती प्रयास और उजागर, बिना पैच वाले स्वयं-होस्टेड appliance पर सीमित गतिविधि बताई। GTIG ने बाद में कई समूह और आगे की कार्रवाइयाँ बताईं; हर रिपोर्ट विशिष्ट अभियान का प्रमाण है, सार्वभौमिक श्रृंखला का नहीं।

चरण 6

पैच तुलना से पहले जाँच करता है

पैच अमान्य दूरस्थ संस्करण को अस्वीकार करके 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

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत