CVE-2026-40859
Apache Camel: Camel-Vertx-Http: जब transferException सक्षम होता है तो raw ObjectInputStream के माध्यम से HTTP प्रतिक्रिया निकायों का असुरक्षित Java deserialization
- प्रकाशित
- 6 जुल॰ 2026
- अद्यतन
- 6 जुल॰ 2026
- सीएनए असाइन करना
- apache
- साक्ष्य देखे गए
- 6 अग॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:Hकम · अगले 30 दिन
- प्रतिशत
- 57.2%
- मॉडल दिनांक
- 21 सित॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
# Apache Camel में अविश्वसनीय डेटा का डिसीरियलाइज़ेशन (Deserialization of Untrusted Data) भेद्यता Apache Camel में अविश्वसनीय डेटा का डिसीरियलाइज़ेशन भेद्यता। camel-vertx-http घटक Content-Type `application/x-java-serialized-object` वाले HTTP प्रतिक्रिया निकायों को बिना किसी ObjectInputFilter लागू किए (VertxHttpHelper.deserializeJavaObjectFromStream) एक कच्चे java.io.ObjectInputStream का उपयोग करके डिसीरियलाइज़ करता है। यह डिसीरियलाइज़ेशन पथ केवल तभी पहुँचा जाता है जब प्रोड्यूसर एंडपॉइंट को `transferException=true` (या घटक-स्तरीय `allowJavaSerializedObject=true`) के साथ कॉन्फ़िगर किया गया हो और `throwExceptionOnFailure` को उसके डिफ़ॉल्ट मान `true` पर छोड़ दिया गया हो; उस स्थिति में, 5xx स्थिति और `application/x-java-serialized-object` सामग्री प्रकार वाली बैकएंड HTTP प्रतिक्रिया का निकाय बिना किसी क्लास प्रतिबंध के डिसीरियलाइज़ किया जाता है। एक हमलावर जो उस बैकएंड को नियंत्रित करता है जिससे Camel प्रोड्यूसर बात करता है — एक अनएन्क्रिप्टेड (सादा HTTP) कनेक्शन पर मैन-इन-द-मिडिल स्थिति के माध्यम से, या बैकएंड सेवा से समझौता करके — एक क्राफ्टेड सीरियलाइज़्ड Java ऑब्जेक्ट लौटा सकता है और, यदि क्लासपाथ पर कोई उपयुक्त गैजेट चेन मौजूद है, तो Camel एप्लिकेशन होस्ट पर रिमोट कोड निष्पादन प्राप्त कर सकता है। यह पथ डिफ़ॉल्ट कॉन्फ़िगरेशन में पहुँच योग्य नहीं है, जहाँ `transferException` गलत (false) है। यह मुद्दा Apache Camel को प्रभावित करता है: 4.0.0 से 4.14.8 से पहले, 4.15.0 से 4.18.3 से पहले, 4.19.0 से 4.20.0 से पहले। उपयोगकर्ताओं को संस्करण 4.20.0 में अपग्रेड करने की अनुशंसा की जाती है, जो इस मुद्दे को ठीक करता है। यदि उपयोगकर्ता 4.14.x LTS रिलीज़ स्ट्रीम पर हैं, तो उन्हें 4.14.8 में अपग्रेड करने का सुझाव दिया जाता है। यदि उपयोगकर्ता 4.18.x रिलीज़ स्ट्रीम पर हैं, तो उन्हें 4.18.3 में अपग्रेड करने का सुझाव दिया जाता है। अपग्रेड करने के बाद, दोनों सहायक उपयोगिताओं द्वारा किया गया डिसीरियलाइज़ेशन एक डिफ़ॉल्ट ObjectInputFilter (allow-list `java.**;javax.**;org.apache.camel.**;!*`) द्वारा प्रतिबंधित है, जिसे नए `deserializationFilter` एंडपॉइंट विकल्प या JVM-व्यापी `-Djdk.serialFilter` सिस्टम प्रॉपर्टी के माध्यम से अनुकूलित किया जा सकता है। उन परिनियोजनों के लिए जो तुरंत अपग्रेड नहीं कर सकते: अविश्वसनीय या नेटवर्क-सुलभ बैकएंड से बात करने वाले प्रोड्यूसर पर `transferException=true` (या `allowJavaSerializedObject=true`) सक्षम न करें; सुनिश्चित करें कि प्रोड्यूसर कनेक्शन TLS (https) का उपयोग करें ताकि मैन-इन-द-मिडिल द्वारा प्रतिक्रिया को प्रतिस्थापित न किया जा सके; और, जहाँ विकल्प आवश्यक है, डिसीरियलाइज़ेशन को प्रतिबंधित करने के लिए एक स्पष्ट `-Djdk.serialFilter` allow-list (उदाहरण के लिए `java.**;org.apache.camel.**;!*`) सेट करें।
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।