
CVE-2026-85246 के लिए रन करने योग्य Spring Boot रिप्रोड्यूसर, जो सॉकेट पर camel-mina कंज़्यूमर अपवाद प्रकटीकरण का प्रदर्शन करता है और muteException फ़िक्स को सत्यापित करता है।
Apache Camel भेद्यता के लिए चलाने योग्य प्रूफ-ऑफ-कॉन्सेप्ट पुनरुत्पादक, जहाँ Mina उपभोक्ता ने एक्सचेंज के प्रसंस्करण के विफल होने पर exchange.getException() को सीधे सॉकेट पर वापस रिमोट पीयर को लिख दिया था।
एक textline कोडेक के माध्यम से यह पीयर को अपवाद का क्लास नाम और संदेश दे देता है; ऑब्जेक्ट कोडेक के माध्यम से यह
सीरियलाइज़्ड अपवाद, कारण श्रृंखला सहित दे देता है। एक रिमोट पीयर जो विफलता उत्पन्न कर सकता है, डिप्लॉयमेंट के बारे में आंतरिक विवरण पढ़ सकता था — क्लास और पैकेज नाम, और जो कुछ भी कोई संदेश या नेस्टेड कारण ले जाता है, जिसमें व्यवहार में पथ, होस्ट नाम और कनेक्शन विवरण शामिल होते हैं। उपभोक्ता के पास इसे दबाने का कोई विकल्प नहीं था, CAMEL-23651 द्वारा संरेखित HTTP-परिवार के उपभोक्ताओं के विपरीत।
केवल Spring Boot। कोई
camel-quarkus-minaएक्सटेंशन नहीं है, इसलिए यह पुनरुत्पादक एकल Camel Spring Boot मॉड्यूल प्रदान करता है। (दोष कंपोनेंट केMinaConsumerमें है, जो रनटाइम-स्वतंत्र है।)
| रनटाइम | निर्देशिका | स्टैक |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-mina 4.22.0 (प्रभावित; 4.22.1 में ठीक किया गया) |
एक Mina TCP उपभोक्ता (sync=true, textline=true) प्रत्येक आने वाली पंक्ति को संसाधित करता है और विफल हो जाता है — किसी भी ऐसे रूट का प्रतिनिधित्व करते हुए जो आंतरिक त्रुटि का सामना करता है। रूट एक IllegalStateException फेंकता है जिसका संदेश सिम्युलेटेड आंतरिक विवरण ले जाता है (एक नकली कॉन्फ़िग पथ /etc/camel/secret.properties, एक नकली होस्ट, और एक मार्कर टोकन)। शोषण ड्राइवर एक साधारण रिमोट TCP पीयर है: यह एक सॉकेट खोलता है, एक पंक्ति भेजता है, और उपभोक्ता द्वारा वापस लिखे गए उत्तर को पढ़ता है।
java.lang.IllegalStateException: INTERNAL-DETAIL-MARKER-7F3A2B config=/etc/camel/secret.properties db=internal-db.prod.svc.java.lang.Exception: Exchange processing failed है — रूट के अपवाद का कोई क्लास, संदेश या स्टैक
ट्रेस नहीं — जबकि अभी भी उत्तर देता है, ताकि एक सिंक्रोनस पीयर टाइमआउट होने के लिए न छोड़ा जाए।cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected: exception leaks over the socket; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85246-mina-info-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack # fixed: generic reply; >>> Not exploited
| गुण | मान |
|---|---|
| घटक | camel-mina (MinaConsumer.messageReceived) |
| CWE | CWE-209 (संवेदनशील जानकारी युक्त त्रुटि संदेश का निर्माण) |
| गंभीरता | MEDIUM |
| आक्रमण वेक्टर | एक दूरस्थ TCP/UDP पीयर रूट विफलता उत्पन्न करता है और सॉकेट पर वापस लिखे गए उत्तर से अपवाद पढ़ता है |
| प्रभाव | सूचना प्रकटीकरण: textline कोडेक पर अपवाद वर्ग/संदेश, या object कोडेक पर क्रमबद्ध अपवाद + कारण श्रृंखला (आंतरिक होस्टनाम, पथ, कनेक्शन विवरण) |
| प्रभावित संस्करण | 4.0.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.1 से पहले तक |
| ठीक किए गए संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24476 |
| श्रेय | Claude Security Scan Tool |
सलाह: https://camel.apache.org/security/CVE-2026-85246.html
MinaConsumer एक muteException कंज़्यूमर विकल्प जोड़ता है (डिफ़ॉल्ट true)।
सक्षम होने पर, विफल एक्सचेंज अब exchange.getException() को वापस नहीं लिखता; इसके बजाय यह एक स्थानापन्न
Exception("Exchange processing failed") खाली स्टैक ट्रेस के साथ लिखता है — यह अभी भी एक Exception है (इसलिए एक object-codec पीयर
अभी भी एक प्राप्त करता है) लेकिन इसमें रूट के अपवाद का कोई वर्ग, संदेश या फ़्रेम नहीं होता। एक उत्तर अभी भी लिखा जाता है ताकि एक
सिंक्रोनस पीयर टाइमआउट होने के लिए न छोड़ा जाए। पिछले व्यवहार को पुनर्स्थापित करने के लिए muteException=false सेट करें।
एक onException हैंडलर जोड़ें जो उत्तर बॉडी को स्पष्ट रूप से सेट करता है, ताकि फ्रेमवर्क कभी भी अपवाद को
पीयर को वापस न लिखे।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने, यह सत्यापित करने कि क्या वे प्रभावित हैं, और पुष्टि करने में मदद करने के लिए कि अपग्रेड करने से यह हल हो जाता है। विफल रूट में कॉन्फ़िग पथ, होस्ट और मार्कर टोकन निष्क्रिय, मनगढ़ंत स्थानीय फ़िक्स्चर हैं। इस सामग्री का उपयोग उन सिस्टम के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।