
Angular Expressions सैंडबॉक्स एस्केप (CVE-2024-54152) के लिए PoC एक्सप्लॉइट, जो दुर्भावनापूर्ण एक्सप्रेशन के माध्यम से RCE प्राप्त करता है। इसमें Docker वातावरण और Go तथा Python में पेलोड स्क्रिप्ट शामिल हैं।
Angular Expressions, Angular.JS वेब फ्रेमवर्क के लिए एक स्टैंडअलोन मॉड्यूल के रूप में एक्सप्रेशन प्रदान करता है। संस्करण 1.4.3 से पहले, एक हमलावर एक दुर्भावनापूर्ण एक्सप्रेशन लिख सकता है जो सैंडबॉक्स से बचकर सिस्टम पर मनमाना कोड निष्पादित कर सकता है। एक अधिक जटिल (अप्रकटित) पेलोड के साथ, सिस्टम पर मनमाना कोड निष्पादन तक पूर्ण पहुँच प्राप्त की जा सकती है। यह समस्या Angular Expressions के संस्करण 1.4.3 में पैच कर दी गई है। दो संभावित वर्कअराउंड उपलब्ध हैं। कोई भी __proto__ तक पहुँच को वैश्विक रूप से अक्षम कर सकता है या यह सुनिश्चित कर सकता है कि फ़ंक्शन का उपयोग केवल एक तर्क के साथ किया जाए।
कमजोरी प्रदर्शित करने के लिए, हमने एक सरल Node.js एप्लिकेशन बनाया है जो Angular Expressions के कमजोर संस्करण का उपयोग करता है। एप्लिकेशन एक /parse एंडपॉइंट उजागर करता है जो उपयोगकर्ता द्वारा प्रदान किए गए एक्सप्रेशन का मूल्यांकन करता है।
रिपॉजिटरी क्लोन करें:
git clone https://github.com/example/CVE-2024-54152-poc.git
cd CVE-2024-54152-poc
Docker कंटेनर बनाएं और चलाएं:
docker build -t vulnerable-app .
docker run -p 8080:8080 vulnerable-app
दुर्भावनापूर्ण पेलोड भेजें: आप पेलोड भेजने के लिए प्रदान की गई Go या Python स्क्रिप्ट में से किसी एक का उपयोग कर सकते हैं।
Go का उपयोग करके:
go run poc.go
Python का उपयोग करके:
python3 poc.py
सर्वर को पेलोड निष्पादित करना चाहिए और id कमांड का परिणाम लौटाना चाहिए, जो मनमाना कोड निष्पादन प्रदर्शित करता है।
इस कमजोरी को कम करने के लिए, Angular Expressions को संस्करण 1.4.3 या उसके बाद के संस्करण में अपडेट करें। वैकल्पिक रूप से, आप __proto__ तक पहुँच को वैश्विक रूप से अक्षम कर सकते हैं या यह सुनिश्चित कर सकते हैं कि फ़ंक्शन का उपयोग केवल एक तर्क के साथ किया जाए।