
CVE-2026-85249 के लिए रन करने योग्य Spring Boot और Quarkus रिप्रोड्यूसर, जो प्रभावित और फ़िक्स्ड कंट्रोल्स के साथ CamelFileName में camel-tika मेटाडेटा हेडर इंजेक्शन का प्रदर्शन करता है।
CamelFileName सेट करता है)Apache Camel भेद्यता के लिए रन करने योग्य प्रूफ-ऑफ-कॉन्सेप्ट पुनरुत्पादक, जहाँ Tika प्रोड्यूसर ने सबमिट किए गए दस्तावेज़ से पार्स किए गए प्रत्येक
मेटाडेटा कुंजी को बिना किसी फ़िल्टर के Exchange पर हेडर के रूप में मैप किया। दस्तावेज़
मेटाडेटा हमलावर-नियंत्रित सामग्री है: जो पक्ष फ़ाइल प्रदान करता है वही उसके द्वारा वहन की जाने वाली मेटाडेटा कुंजियाँ चुनता है। इसलिए एक
तैयार किया गया दस्तावेज़ उन Exchange हेडर को सेट कर सकता था जिन पर शेष रूट निर्भर करता है, जिसमें CamelFileName जैसे Camel-नेमस्पेस
हेडर भी शामिल हैं, जिनका उपयोग डाउनस्ट्रीम कंपोनेंट यह तय करने के लिए करते हैं कि सामग्री कहाँ लिखी जाए। यह उसी
हेडर-इंजेक्शन श्रेणी का है जो कंज़्यूमर सलाहकारों में है, जो यहाँ प्रोटोकॉल
हेडर के बजाय पार्स की गई फ़ाइल सामग्री के माध्यम से पहुँचा गया है।
| रनटाइम | निर्देशिका | स्टैक |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-tika 4.22.0 (प्रभावित; ठीक किया गया 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.39.0 + camel-quarkus-tika (Camel 4.22.0, प्रभावित; ठीक किया गया नियंत्रण CQ 3.40.0 / Camel 4.22.1) |
दोनों मॉड्यूल प्रभावित और ठीक किए गए व्यवहार को प्रदर्शित करते हैं।
हमलावर एक HTML दस्तावेज़ सबमिट करता है — एक HTML <meta name="..."> एट्रिब्यूट Tika के मेटाडेटा तक शब्दशः पहुँचता है, इसलिए
दस्तावेज़ हेडर नाम चुनता है:
<meta name="CamelFileName" content="ATTACKER-SET-../../pwned.txt"/>
<meta name="author" content="legitimate-metadata"/>
रूट बस from(...).to("tika:parse") है। पार्स करने के बाद, Exchange हेडर की जाँच की जाती है।
CamelFileName (Exchange.FILE_NAME) को दस्तावेज़ से हमलावर के मान पर सेट किया जाता है। एक डाउनस्ट्रीम
फ़ाइल प्रोड्यूसर उस हमलावर-चयनित मान का उपयोग यह तय करने के लिए करेगा कि सामग्री कहाँ लिखी जाए।CamelFileName को फ़िल्टर कर दिया जाता है (दस्तावेज़ से सेट नहीं किया जाता), जबकि author जैसे सामान्य मेटाडेटा
अभी भी मैप किए जाते हैं — फ़िल्टर केवल Camel-आंतरिक नेमस्पेस को ब्लॉक करता है।# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected: document sets CamelFileName; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85249-tika-header-injection-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack # fixed: CamelFileName filtered; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # affected (Camel 4.22.0): document sets CamelFileName
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack # fixed: CamelFileName filtered
| Property | Value |
|---|---|
| घटक | camel-tika (TikaProducer.convertMetadataToHeaders) |
| CWE | CWE-20 (अनुचित इनपुट सत्यापन) |
| गंभीरता | MEDIUM |
| आक्रमण वेक्टर | एक सबमिट किया गया दस्तावेज़ जिसका पार्स किया गया मेटाडेटा Camel-आंतरिक हेडर नाम घोषित करता है (जैसे HTML <meta name="CamelFileName"> के माध्यम से) |
| प्रभाव | हेडर इंजेक्शन: एक दस्तावेज़ Exchange हेडर सेट करता है जिन पर रूट निर्भर करता है, जैसे CamelFileName जो तय करता है कि डाउनस्ट्रीम घटक सामग्री कहाँ लिखते हैं |
| प्रभावित संस्करण | 4.0.0 से 4.18.5 से पहले तक, 4.19.0 से 4.22.1 से पहले तक |
| ठीक किए गए संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24423 |
| श्रेय | Claude Security Scan Tool |
सलाह: https://camel.apache.org/security/CVE-2026-85249.html
TikaProducer.convertMetadataToHeaders अब प्रत्येक पार्स किए गए मेटाडेटा
नाम को Exchange पर मैप करने से पहले एक HeaderFilterStrategy (जिसे inFilterStartsWith("Camel", "camel", "org.apache.camel.") के साथ कॉन्फ़िगर किया गया है,
केस-असंवेदनशील) के माध्यम से फ़िल्टर करता है — ठीक उसी तरह जैसे एक उपभोक्ता बाहरी
प्रेषक द्वारा प्रदान किए गए नामों को फ़िल्टर करता है — ताकि कोई दस्तावेज़ ऐसा मेटाडेटा नाम घोषित न कर सके जो Camel-आंतरिक नामस्थान में पहुँच जाए। उस
नामस्थान के बाहर का मेटाडेटा अभी भी मैप किया जाता है।
Tika निर्माता के बाद Camel नामस्थान को हटा दें, किसी भी ऐसे घटक से पहले जो
उन हेडर पर कार्य करता है, removeHeaders("Camel*") का उपयोग करके।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने, यह सत्यापित करने कि क्या वे प्रभावित हैं, और यह पुष्टि करने में मदद करने के लिए कि अपग्रेड करने से यह हल हो जाती है। तैयार किया गया दस्तावेज़ और इंजेक्ट किया गया फ़ाइलनाम निष्क्रिय स्थानीय फ़िक्स्चर हैं। इस सामग्री का उपयोग उन सिस्टम के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।