CVE-2026-43866
Apache Camel, Apache Camel: Camel JMS - CVE-2026-40860 फिक्स बायपास DefaultExchangeHolder के माध्यम से
- प्रकाशित
- 6 जुल॰ 2026
- अद्यतन
- 6 जुल॰ 2026
- सीएनए असाइन करना
- apache
- साक्ष्य देखे गए
- 6 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:Lकम · अगले 30 दिन
- प्रतिशत
- 49.5%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
# अविश्वसनीय डेटा का डिसीरियलाइज़ेशन (Deserialization of Untrusted Data) भेद्यता Apache Camel में, Apache Camel JMS घटक में। `camel-jms` में `JmsBinding.extractBodyFromJms()` - और `camel-sjms` में समतुल्य `JmsBinding` - जब भी `mapJmsMessage` विकल्प सक्षम होता है (डिफ़ॉल्ट) और Camel एक JMS उपभोक्ता के रूप में कार्य करता है, तो आने वाले JMS ObjectMessage के पेलोड को `jakarta.jms.ObjectMessage.getObject()` के माध्यम से डिसीरियलाइज़ करता है। CVE-2026-40860 हार्डनिंग ने एक पोस्ट-डिसीरियलाइज़ेशन क्लास जाँच जोड़ी जो डिफ़ॉल्ट अनुमति-सूची `java.**;javax.**;org.apache.camel.**;!*.` के बाहर की क्लासों को अस्वीकार करती है। हालाँकि, `org.apache.camel.support.DefaultExchangeHolder` स्वयं अनुमति-सूचीबद्ध `org.apache.camel.**` नेमस्पेस में रहता है, इसलिए एक ObjectMessage जिसकी शीर्ष-स्तरीय वस्तु DefaultExchangeHolder है, जाँच पास कर लेती है। प्राप्त करने वाला पक्ष फिर `transferExchange` विकल्प के सक्षम होने की आवश्यकता के बिना उस पर `DefaultExchangeHolder.unmarshal()` को कॉल करता है - एक असममित विश्वास सीमा, क्योंकि भेजने वाला पक्ष ObjectMessage और transferExchange हैंडलिंग को गेट करता है लेकिन प्राप्त करने वाला पक्ष नहीं करता - होल्डर के हर गैर-शून्य फ़ील्ड को Exchange में लिखता है: संदेश बॉडी, IN और OUT हेडर, एक्सचेंज प्रॉपर्टीज़, वेरिएबल्स, एक्सचेंज आईडी और अपवाद। एक हमलावर जो किसी प्रभावित Camel एप्लिकेशन द्वारा उपभोग की जाने वाली कतार या टॉपिक पर एक ObjectMessage प्रकाशित कर सकता है, इसलिए केवल सार्वभौमिक रूप से विश्वसनीय `java.lang` और `java.util` प्रकारों का उपयोग करके, बिना किसी डिसीरियलाइज़ेशन गैजेट श्रृंखला की आवश्यकता के, मनमाना Exchange स्थिति इंजेक्ट कर सकता है, ताकि रूटिंग और हेडर, एक्सचेंज प्रॉपर्टीज़ और त्रुटि हैंडलिंग में हेरफेर किया जा सके। यही हैंडलिंग `camel-sjms` और `camel-sjms2` पर, तथा `JmsComponent` और `JmsBinding` पर निर्मित JMS-परिवार के घटकों: `camel-amqp`, `camel-activemq` और `camel-activemq6` पर भी लागू होती है। यह CVE-2026-40860 फिक्स में किसी दोष के बजाय उसका एक बायपास है। यह मुद्दा Apache Camel को प्रभावित करता है: 3.0.0 से 4.14.8 से पहले, 4.15.0 से 4.18.3 से पहले, 4.19.0 से 4.21.0 से पहले; Apache Camel: 3.0.0 से 4.14.8 से पहले, 4.15.0 से 4.18.3 से पहले, 4.19.0 से 4.21.0 से पहले। उपयोगकर्ताओं को संस्करण 4.21.0 में अपग्रेड करने की अनुशंसा की जाती है, जो इस मुद्दे को ठीक करता है। यदि उपयोगकर्ता 4.14.x LTS रिलीज़ स्ट्रीम पर हैं, तो उन्हें 4.14.8 में अपग्रेड करने का सुझाव दिया जाता है। यदि उपयोगकर्ता 4.18.x रिलीज़ स्ट्रीम पर हैं, तो उन्हें 4.18.3 में अपग्रेड करने का सुझाव दिया जाता है। अपग्रेड करने के बाद, JMS ObjectMessage हैंडलिंग डिफ़ॉल्ट रूप से `camel-jms`, `camel-sjms` और JMS-परिवार के घटकों में अक्षम है (एक नया `objectMessageEnabled` विकल्प घटक और एंडपॉइंट स्तर पर डिफ़ॉल्ट रूप से false होता है), इसलिए एक आने वाला ObjectMessage - जिसमें DefaultExchangeHolder पेलोड भी शामिल है - अब डिसीरियलाइज़ नहीं किया जाता जब तक कि विकल्प स्पष्ट रूप से सक्षम न किया जाए; केवल तभी `objectMessageEnabled=true` सेट करें जब उपभोग किया गया JMS गंतव्य विशेष रूप से विश्वसनीय उत्पादकों द्वारा फीड किया जाता है। उन परिनियोजनों के लिए जो तुरंत अपग्रेड नहीं कर सकते, JMS ब्रोकर प्राधिकरण के माध्यम से Camel द्वारा उपभोग की जाने वाली कतारों और टॉपिक्स तक प्रकाशन पहुँच को विश्वसनीय उत्पादकों तक प्रतिबंधित करें, और JMS उपभोक्ताओं को अविश्वसनीय नेटवर्क पर ObjectMessage बॉडी मैप करने के लिए उजागर न करें; एक JMS-प्रदाता डिसीरियलाइज़ेशन अनुमति-सूची इस विशिष्ट बायपास को कम नहीं करती क्योंकि तैयार किया गया पेलोड केवल सार्वभौमिक रूप से विश्वसनीय क्लासों का उपयोग करता है।
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।