Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-95629 — CVE-2026-95629 के लिए रन करने योग्य प्रूफ-ऑफ-कॉन्सेप्ट रिप्रोड्यूसर, जो Apache Camel camel-docling में एक पाथ-ट्रैवर्सल दोष है, जहाँ output-path हेडर सीधे docling के --output तक पहुँचता है। | Kitploit
उपकरण/GitHubGitHub/oscerd/cve-2026-95629
रक्षात्मक उपकरणभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेपर और शोधलर्निंग और शिक्षा
GitHuboscerd/cve-2026-95629

CVE-2026-95629

CVE-2026-95629 के लिए रन करने योग्य प्रूफ-ऑफ-कॉन्सेप्ट रिप्रोड्यूसर, जो Apache Camel camel-docling में एक पाथ-ट्रैवर्सल दोष है, जहाँ output-path हेडर सीधे docling के --output तक पहुँचता है।

रिपॉजिटरी देखें
75 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-95629 — camel-docling: आउटपुट-पथ हेडर --output तक शब्दशः पहुँचा

Apache Camel की उस भेद्यता के लिए चलाने योग्य प्रमाण-अवधारणा (proof-of-concept) पुनरुत्पादक, जिसमें DoclingProducer, CLI मोड (डिफ़ॉल्ट) में बाहरी docling टूल चलाते समय, CamelDoclingOutputFilePath हेडर का मान docling के --output फ़्लैग को शब्दशः सौंप देता था: सामान्यीकृत नहीं, एक निरपेक्ष (absolute) पथ या .. खंडों वाला पथ जैसा दिया गया वैसा ही स्वीकार किया जाता था, और कोई भी endpoint विकल्प उसे सीमित नहीं कर सकता था।

रनटाइमनिर्देशिकास्टैक
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0 (Quarkus 3.39.0, Camel 4.22.0)

यह क्या प्रदर्शित करता है

Docling रूपांतरण परिणाम — Markdown, HTML, JSON या टेक्स्ट — को उस निर्देशिका में लिखता है, फ़ाइल का नाम इनपुट फ़ाइल के आधार पर रखता है, और इसके बाद producer केवल अपनी ही अस्थायी निर्देशिका हटाता है, इसलिए फ़ाइल वहीं रह जाती है। अतः जो पक्ष हेडर सेट कर सकता है, वह Camel प्रक्रिया जिस भी निर्देशिका में लिख सकती है, वहाँ रूपांतरण आउटपुट बनवा सकता था।

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

प्रभावित बिल्ड पर आउटपुट (दोनों रनटाइम पर समान):

1) No header at all - the producer picks its own temporary directory
     argv docling received: --to md --ocr-lang en --output /tmp/docling-<uuid> /tmp/docling-<uuid>/docling-<n>.tmp
     exchange outcome: ok

2) An ABSOLUTE path of the attacker's choosing
     header CamelDoclingOutputFilePath = /tmp/cve-2026-95629-attacker-chosen
     argv docling received: ... --output /tmp/cve-2026-95629-attacker-chosen ...

3) A path with .. segments - watch whether they survive into the argv below
     header CamelDoclingOutputFilePath = /tmp/cve-2026-95629-attacker-chosen/../cve-2026-95629-escaped
     argv docling received: ... --output /tmp/cve-2026-95629-attacker-chosen/../cve-2026-95629-escaped ...

4) CONTROL - asking for the same thing through CamelDoclingCustomArguments instead
     REJECTED by Camel: IllegalArgumentException: Custom argument '--output' is not allowed because the
     output directory is managed by the producer. Use the CamelDoclingOutputFilePath header or endpoint
     configuration instead.

Files now sitting in directories the route never chose:
  /tmp/cve-2026-95629-attacker-chosen/document.md : true
  /tmp/cve-2026-95629-escaped/document.md         : true

>>> PROVEN: ...

प्रोब 4 समस्या की प्रकृति है। CVE-2026-40047 के फ़िक्स द्वारा जोड़ा गया कस्टम-आर्ग्युमेंट वैलिडेशन CamelDoclingCustomArguments में --output और -o को अस्वीकार करता है और कॉलर्स से कहता है कि आउटपुट डायरेक्टरी इसके बजाय इस हेडर से चुनें — इसलिए वही एक मान जो तय करता है कि docling कहाँ लिखेगा, वही एक मान कमांड लाइन तक पहुँचता था जिस पर कस्टम आर्ग्युमेंट्स के लिए लागू किए जाने वाले किसी भी जाँच को लागू नहीं किया गया था।

प्रोब 2 और 3 के बाद एक्सचेंज स्वयं विफल हो जाता है ("failed afterwards"), क्योंकि प्रोड्यूसर तब कन्वर्ट किए गए आउटपुट को अपनी स्वयं की अस्थायी डायरेक्टरी में खोजता है और वहाँ उसे नहीं पाता। यह सतही बात है: राइट पहले ही हो चुका है, जो अंत में दी गई फ़ाइल लिस्टिंग में दिखता है।

यह कैसे जुड़ा है

किसी docling इंस्टॉलेशन की आवश्यकता नहीं। एंडपॉइंट का doclingCommand विकल्प CLI के लिए एक रिकॉर्डिंग स्टैंड-इन की ओर इंगित करता है, जो उसे दिए गए आर्ग्युमेंट वेक्टर को रिकॉर्ड करता है और साथ ही जिस भी --output का नाम दिया गया हो उसमें एक फ़ाइल लिखता है, ठीक वैसे जैसे docling करता है। वास्तविक DoclingProducer और वास्तविक addOutputDirectoryArguments() चलते हैं।

केवल CLI मोड इस हेडर का उपयोग करता है; docling-serve मोड नहीं करता।

पहुँच

CamelDoclingOutputFilePath Camel हेडर नेमस्पेस का हिस्सा है, जिसे Camel की डिफ़ॉल्ट हेडर फ़िल्टरिंग लागू करने वाले कंज़्यूमर — उदाहरण के लिए JMS और Kafka कंज़्यूमर — आने वाले संदेशों से हटा देते हैं। यह समस्या वहाँ पहुँचती है जहाँ कोई रूट बाहरी रूप से प्रभावित मानों को हेडर में अग्रेषित करता है, या जहाँ कोई कंज़्यूमर आने वाले हेडर को उस फ़िल्टरिंग के बिना मैप करता है।

लिखी गई फ़ाइल की सामग्री संदेश द्वारा ले जाए गए दस्तावेज़ का कन्वर्ज़न है, इसलिए यह उसी के द्वारा आकार दी जाती है जो वह दस्तावेज़ प्रदान करता है, बिना बाइट-दर-बाइट लिखे जाने के; जब दस्तावेज़ संदेश बॉडी में आता है, तो प्रोड्यूसर उसे एक यादृच्छिक अस्थायी नाम के अंतर्गत संग्रहीत करता है, जिसे फिर आउटपुट फ़ाइल वहन करती है।

भेद्यता सारांश

गुणमान
घटकcamel-docling (DoclingProducer.addOutputDirectoryArguments())
CWECWE-22 (किसी पाथनेम का प्रतिबंधित डायरेक्टरी तक अनुचित सीमन)
गंभीरतामध्यम
आक्रमण वेक्टरCamelDoclingOutputFilePath हेडर में एक निरपेक्ष या ..-युक्त डायरेक्टरी
प्रभावकन्वर्ज़न आउटपुट किसी भी उस डायरेक्टरी में बनाया जाता है जहाँ Camel प्रक्रिया लिख सकती है
प्रभावित संस्करण4.15.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.2 से पहले तक
ठीक किए गए संस्करण4.18.5, 4.22.2, 4.23.0
JIRACAMEL-24894
श्रेयZhixi "Jace" Sun, स्वतंत्र सुरक्षा शोधकर्ता

सलाह: https://camel.apache.org/security/CVE-2026-95629.html

उसी घटक में, उसी रिलीज़ लहर में सहोदर समस्या: CVE-2026-95628 (कस्टम-आर्ग्युमेंट मानों के रूप में निरपेक्ष पाथ स्वीकार किए जाना)।

फ़िक्स — और केवल अपग्रेड करना पर्याप्त क्यों नहीं है

हेडर को अब इनपुट पाथ के समान ही नॉर्मलाइज़ेशन और वैकल्पिक बेस-डायरेक्टरी कंटेनमेंट मिलता है, resolveWithinOutputBaseDirectory() के माध्यम से। लेकिन फ़िक्स द्वारा जोड़ा गया outputBaseDirectory एंडपॉइंट विकल्प डिफ़ॉल्ट रूप से अनसेट है, और उसका अपना दस्तावेज़ीकरण कहता है कि जब खाली हो, कोई डायरेक्टरी प्रतिबंध लागू नहीं होता और हेडर मान केवल नॉर्मलाइज़ किया जाता है।

4.22.1 → 4.22.2 के विरुद्ध सत्यापित, outputBaseDirectory को अनसेट छोड़कर:

3) A path with .. segments - watch whether they survive into the argv below
     argv docling received: ... --output /tmp/cve-2026-95629-escaped ...        <- normalized

Files now sitting in directories the route never chose:
  /tmp/cve-2026-95629-attacker-chosen/document.md : true                       <- still written
  /tmp/cve-2026-95629-escaped/document.md         : true

>>> PARTLY CLOSED: the header was normalized before reaching --output ... It can still name any directory
>>> the Camel process can write to, because the outputBaseDirectory option the fix added is UNSET by
>>> default ... Set outputBaseDirectory on every docling endpoint whose CamelDoclingOutputFilePath header
>>> can carry a value influenced from outside the deployment; upgrading alone is not enough.

ड्राइवर उस स्थिति को अलग से रिपोर्ट करता है, उसे fixed नहीं कहता, क्योंकि अधिकांश डिप्लॉयमेंट अपग्रेड के ठीक बाद इसी स्थिति में पहुँचेंगे। अपग्रेड करने के बाद, हर उस docling endpoint पर outputBaseDirectory सेट करें जिसका header बाहरी रूप से प्रभावित मान ले जा सकता है।

main पर apache/camel#26737 (48485d40) में fixed, camel-4.22.x में #27365 और camel-4.18.x में #27362 में backported।

अपग्रेड किए बिना शमन

CamelDoclingOutputFilePath को उन मानों से न बनाएँ जो डिप्लॉयमेंट के बाहर से आते हैं; बाहर से आने वाले संदेशों से उस header को हटा दें, इससे पहले कि वे किसी docling endpoint तक पहुँचें; और सुनिश्चित करें कि आने वाले headers को मैप करने वाले consumers Camel header namespace को छोड़ दें।

अस्वीकरण

टूल डाउनलोड करें