संशोधक मायक्रोसॉफ्टचा सदोष कोड उघडकीस आणतो जो हल्लेखोरांना आपल्या संगणकावर फायलींमध्ये प्रवेश करू देतो


यावर्षी मे महिन्यात, मायक्रोसॉफ्टने 2025 ची बिल्ड आयोजित केली तेव्हा ती एनएलवेबची ओळख करुन दिली, एआय एजंट्सना वेबसाइट्सशी संवाद साधण्याचा एक मार्ग म्हणजे “नॅचरल लँग्वेज वेब” साठी शॉर्ट.
शॉपिफाई आणि ट्रिपएडव्हायझर सारख्या कंपन्यांनी साइन इन केल्यामुळे मायक्रोसॉफ्टने हे “एजंटिक वेब” चा पाया म्हणून काम केले, जे एआय एजंट्स थेट ऑनलाइन सेवांशी बोलून जटिल कार्ये हाताळतात.
आता, लेई वांग यांच्यासमवेत एक सुरक्षा संशोधक, अनानन गुआन (कडा मार्गे) ओपन-सोर्स फ्रेमवर्कमध्ये पथ ट्रॅव्हर्सल असुरक्षिततेचे दस्तऐवजीकरण केले आहे. ग्वानच्या म्हणण्यानुसार ते ब्राउझ करीत होते एनएलवेब गीथब रेपो जेव्हा एखाद्या विशिष्ट फाईलने त्यांचे लक्ष वेधून घेतले: webserver/static_file_handler.py?
# The vulnerable code snippet
safe_path = os.path.normpath(path.lstrip("https://www.neowin.net/"))
possible_roots = [
APP_ROOT,
os.path.join(APP_ROOT, 'site', 'wwwroot'),
'/home/site/wwwroot',
os.environ.get('HOME', ''),
]
# Later in the code...
full_path = os.path.join(root, safe_path)
आपण कोडच्या पहिल्या ओळीवर नजर टाकल्यास, आपल्याला एक निर्दोष दिसणारी ओळ दिसेल. अधिकृत पायथन दस्तऐवजीकरणातून, os.path.normpath() निरर्थक विभाजक आणि अप-स्तरीय संदर्भ कोसळवून एक पथनाव सामान्य करतो.
विंडोजवर, ते फॉरवर्ड स्लॅश (/) बॅकस्लॅश (\) मध्ये रूपांतरित करते. उदाहरणार्थ, एक मार्ग A//B/./C/../D वर सामान्य केले जाईल A/B/Dपरंतु या फंक्शनचा एक ओंगळ दुष्परिणाम आहे, जसे ग्वानने नमूद केले आहे. हे वापरकर्त्यास वापरल्या जाणार्या वेब निर्देशिकेच्या बाहेर “क्लाइंबिंग” करण्यापासून प्रतिबंधित करत नाही ../ अनुक्रम.
स्थानिक सर्व्हर ऐकत असताना ग्वानने त्याच्या संशयाची पुष्टी केली 0.0.0.0:8000एक मानक चाचणी कॉन्फिगरेशन. जेव्हा तो पळाला curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd"सर्व्हरने आनंदाने सामग्री परत केली /etc/passwd?

जर तुम्हाला माहिती नसेल तर, /etc/passwd लिनक्स आणि मॅकोस सारख्या युनिक्स सिस्टमवरील वापरकर्ता खाते डेटाबेस आहे, जेथे ते वापरकर्ता आयडी आणि इतर सिस्टम माहितीसाठी वापरकर्तानावांचे नकाशे आहे.

संशोधक प्रकल्पाच्या समावेशासह अॅपच्या स्त्रोत कोडमध्ये फायलींमध्ये देखील प्रवेश करू शकतो .env जेव्हा तो धावला तेव्हा फाइल (जे आपण कधीही सार्वजनिकपणे उघड करू नये म्हणून आपण कधीही उघड करू नये) curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"?
कोड वापरकर्त्याचे इनपुट योग्य प्रकारे स्वच्छ करण्यात तसेच अंतिम, निराकरण केलेला फाइल पथ प्रत्यक्षात नियुक्त केलेल्या वेब रूटच्या आत होता हे सत्यापित करण्यात अयशस्वी झाला. ग्वान नोंदवले 28 मे रोजी असुरक्षितता. मायक्रोसॉफ्टने त्याच दिवशी अहवालाची कबुली दिली आणि दोन दिवसांनंतर एक निराकरण जारी केले.
कंपनीच्या बाबतीत, निराकरण प्रथम तपासण्यासाठी होते .. बेसिक डिरेक्टरी ट्रॅव्हर्सल प्रयत्न अवरोधित करण्यासाठी कच्च्या मार्गामध्ये. त्यानंतर, विनंती केलेली फाईल अनुमत विस्तारांपैकी एकासह समाप्त होईल की नाही हे तपासते: .html, .htm, .css, .js, .png, .jpg, .jpeg, .gif, .svg, .ico, .json, .txt, किंवा .xml.
अखेरीस आणि सर्वात महत्त्वाचे म्हणजे, ते विनंती केलेल्या फाईलच्या पूर्ण, परिपूर्ण मार्गाचे निराकरण करते आणि याची पुष्टी करते की त्यापैकी एकामध्ये राहते मंजूर रूट डिरेक्टरीजकोणत्याही सुटण्यापासून रोखत आहे.
गुआन आपल्या एनएलवेब उदाहरणास त्वरित अद्यतनित करण्याची शिफारस करतो आणि असा युक्तिवाद करतो की एजंट वेबने नवीन हल्ला पृष्ठभाग कसा ओळखला हे दर्शविले आहे, कारण वापरकर्त्यांकडून नैसर्गिक भाषेचा अर्थ लावणे अत्यंत काळजीपूर्वक हाताळले नाही तर अनवधानाने दुर्भावनायुक्त फाइल मार्ग किंवा सिस्टम कमांडमध्ये भाषांतर करू शकते.



