
Apache Camel camel-as2 में CVE-2026-80344 के लिए रन करने योग्य प्रूफ-ऑफ-कॉन्सेप्ट रिप्रोड्यूसर, जो प्रभावित और फिक्स्ड बिल्ड्स के साथ असिंक्रोनस MDN SSRF और क्रेडेंशियल डिस्क्लोज़र का प्रदर्शन करता है।
Apache Camel की उस भेद्यता के लिए चलाने योग्य प्रूफ-ऑफ-कॉन्सेप्ट पुनरुत्पादक, जिसमें AS2 रिसीवर ने
अतुल्यकालिक Message Disposition Notification (MDN) को प्रेषक द्वारा प्रदान किए गए पते (the
Receipt-Delivery-Option) पर वितरित किया, बिना किसी बाधा के। इसलिए एक दूरस्थ साझेदार यह चुनता है कि MDN
वितरित करते समय Camel इंस्टेंस किस होस्ट से कनेक्ट होगा — AS2 रिसीवर की स्थिति से सर्वर-साइड रिक्वेस्ट फ़ॉर्जरी,
जो केवल डिप्लॉयमेंट के नेटवर्क के अंदर से रूटेबल होस्ट तक पहुँचती है — और जहाँ MDN वितरण क्रेडेंशियल के साथ
कॉन्फ़िगर किया गया है, वहाँ वे क्रेडेंशियल हमलावर द्वारा चुने गए गंतव्य को प्रस्तुत किए जाते हैं।
| रनटाइम | निर्देशिका | स्टैक |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-as2 4.22.0 (प्रभावित; ठीक किया गया 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-as2 3.29.0 (Camel 4.15.0, प्रभावित; ठीक किया गया नियंत्रण 3.40.0 / Camel 4.22.1) |
ऐप एक ही JVM में चलता है:
as2://server/listen, पोर्ट 8888) जो MDN-वितरण क्रेडेंशियल के साथ कॉन्फ़िगर किया गया है;as2://client/send) जो एक अहस्ताक्षरित (PLAIN) AS2 संदेश भेजता है और
अतुल्यकालिक MDN का अनुरोध करता है, जिसमें receiptDeliveryOption एक केवल-आंतरिक URL
(127.0.0.1:9099, एक ऐसा पोर्ट जिसे Docker प्रकाशित नहीं करता — जो केवल डिप्लॉयमेंट के अंदर से पहुँचने योग्य
होस्ट का प्रतिनिधित्व करता है) की ओर इंगित करता है;प्रभावित बिल्ड पर रिसीवर MDN वितरित करने के लिए हमलावर द्वारा चुने गए आंतरिक URL से कनेक्ट होता है और
उसे अपने MDN-वितरण क्रेडेंशियल प्रस्तुत करता है (Authorization: Basic …)। ठीक किए गए बिल्ड पर वे
क्रेडेंशियल रोके जाते हैं (वे केवल अनुमति-सूचीबद्ध होस्ट से जोड़े जाते हैं), और नया asyncMdnAllowedHosts विकल्प
वितरण होस्ट को पूरी तरह से प्रतिबंधित करता है।
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
प्रभावित बिल्ड पर अपेक्षित आउटपुट:
Internal host connections observed:
POST /internal-mdn-sink (Authorization=Basic bWRuLXBhcnRuZXItdXNlcjpNRE4tREVMSVZFUlktU0VDUkVU)
>>> PROVEN: the AS2 receiver connected to the sender-chosen internal URL to deliver the async MDN
>>> (server-side request forgery) AND presented its configured MDN-delivery credentials ...
(Authorization मान डिकोड होकर mdn-partner-user:MDN-DELIVERY-SECRET बनता है।) फ़िक्स्ड बिल्ड पर कनेक्शन
Authorization=null दिखाता है — क्रेडेंशियल अब प्रेषक-चयनित होस्ट को प्रस्तुत नहीं किए जाते।
| गुण | मान |
|---|---|
| घटक | camel-as2 |
| CWE | CWE-918 (सर्वर-साइड रिक्वेस्ट फ़ॉर्जरी); क्रेडेंशियल प्रकटीकरण (CWE-200) |
| गंभीरता | उच्च |
| आक्रमण वेक्टर | एक AS2 प्रेषक जो आक्रमणकर्ता-चयनित Receipt-Delivery-Option पते के साथ अतुल्यकालिक MDN का अनुरोध करता है |
| प्रभाव | रिसीवर से सर्वर-साइड रिक्वेस्ट फ़ॉर्जरी (आंतरिक होस्ट तक पहुँच); आक्रमणकर्ता-चयनित होस्ट को MDN-डिलीवरी क्रेडेंशियल का प्रकटीकरण |
| प्रभावित संस्करण | 4.0.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.1 से पहले तक |
| फ़िक्स्ड संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24417 |
| श्रेय | Claude Security Scan Tool |
सलाह: https://camel.apache.org/security/CVE-2026-80344.html
अतुल्यकालिक MDN गंतव्य अब इनबाउंड संदेश से शब्दशः लेने के बजाय प्रतिबंधित है। एक नया
asyncMdnAllowedHosts विकल्प (लेबल security) उन होस्ट्स को अनुमति-सूचीबद्ध करता है जिन्हें MDN वितरित किया जा सकता है, और
कॉन्फ़िगर किए गए MDN-डिलीवरी क्रेडेंशियल केवल तब संलग्न किए जाते हैं जब गंतव्य अनुमति-सूचीबद्ध हो — इसलिए डिफ़ॉल्ट रूप से
(कोई अनुमति-सूची नहीं) क्रेडेंशियल कभी भी प्रेषक-चयनित होस्ट को प्रस्तुत नहीं किए जाते।
AS2 रिसीवर से आउटबाउंड कनेक्टिविटी को उन पार्टनर एंडपॉइंट्स तक सीमित करें जिन्हें यह वैध रूप से रसीदें वितरित करता है, और MDN डिलीवरी में ऐसे क्रेडेंशियल संलग्न न करें जो उन पार्टनर के अलावा किसी अन्य होस्ट के लिए वैध हों।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने में मदद करने, यह सत्यापित करने कि क्या वे प्रभावित हैं, और पुष्टि करने के लिए कि अपग्रेड करने से यह हल हो जाती है। "क्रेडेंशियल" और आंतरिक सिंक निष्क्रिय स्थानीय फ़िक्स्चर हैं। इस सामग्री का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।