
CVE-2026-49042 — Updated!
CVE-2026-49042 (Apache Camel camel-langchain4j-tools) के लिए PoC पुनरुत्पादक: प्रॉम्प्ट-इंजेक्टेड LLM के टूल-कॉल तर्क अनफ़िल्टर्ड Exchange हेडर बन जाते हैं, जो टूल रूट के exec: सिंक को RCE के लिए हाईजैक कर लेते हैं। 4.14.8/4.18.3/4.21.0 में ठीक किया गया।
CVE-2026-49042 — camel-langchain4j-tools प्रॉम्प्ट-इंजेक्शन → हेडर-इंजेक्शन
उसी Apache Camel भेद्यता के लिए चलाने योग्य प्रूफ-ऑफ-कॉन्सेप्ट रिप्रोड्यूसर, प्रत्येक रनटाइम के लिए एक:
| रनटाइम | निर्देशिका | स्टैक | अपहृत सिंक | प्रदर्शित प्रभाव |
|---|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | exec: via CamelExecCommand* | रिमोट कोड निष्पादन |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (bundles Camel 4.20.0) | http via CamelHttpUri | SSRF + गुप्त जानकारी का खुलासा |
दोनों प्रभावित संस्करण हैं (4.14.8 / 4.18.3 / 4.21.0 में ठीक किए गए), और दोनों समान दोष प्रदर्शित करते हैं:
LangChain4jToolsProducer#invokeTools मॉडल के टूल-कॉल तर्कों के JSON के हर फ़ील्ड को सीधे Exchange हेडर में कॉपी करता है, घोषित पैरामीटर स्कीमा के विरुद्ध कोई जाँच किए बिना। टूल एक पैरामीटर घोषित करता है (host), लेकिन एक प्रॉम्प्ट-इंजेक्ट किया गया मॉडल अतिरिक्त फ़ील्ड उत्सर्जित करता है जो Camel नियंत्रण हेडर के रूप में आते हैं और टूल रूट द्वारा डाउनस्ट्रीम में उपयोग किए जाने वाले किसी भी प्रोड्यूसर को अपहृत कर लेते हैं (CWE-20)।
किसी वास्तविक LLM या API कुंजी की आवश्यकता नहीं है: इंजेक्शन पूरी तरह से टूल-कॉल तर्कों में होता है जो एक मॉक मॉडल उत्सर्जित करता है, बिल्कुल उसी तरह जैसे एक jailbroken या अप्रत्यक्ष रूप से प्रॉम्प्ट-इंजेक्ट किया गया मॉडल उत्पन्न करेगा।
दोनों वेरिएंट अलग-अलग सिंक क्यों अपहृत करते हैं
Spring Boot वेरिएंट exec: सिंक के माध्यम से RCE सिद्ध करता है। वह सिंक Camel 4.20.0 पर डिफ़ॉल्ट रूप से पहुंच योग्य नहीं है (जो Camel Quarkus 3.36.0 बंडल करता है): CAMEL-23315 ने camel-exec में allowControlHeaders विकल्प जोड़ा, जो false डिफ़ॉल्ट है, पहली बार 4.20.0 में जारी किया गया। यह सख्ती इस CVE से स्वतंत्र है और इसे ठीक नहीं करती — इंजेक्ट किए गए फ़ील्ड अभी भी 4.20.0 पर Exchange हेडर बन जाते हैं (रूट लॉग में सत्यापित); केवल उस एक डाउनस्ट्रीम सिंक ने अपने नियंत्रण हेडर का सम्मान करना बंद कर दिया। इसलिए Quarkus वेरिएंट http प्रोड्यूसर को अपहृत करता है, जो डिफ़ॉल्ट रूप से सम्मानित होता है, और अतिरिक्त रूप से एक Camel प्रॉपर्टी प्लेसहोल्डर की तस्करी करता है जिसे प्रोड्यूसर हल करता है — जिसके परिणामस्वरूप SSRF और एक वास्तविक एप्लिकेशन गुप्त जानकारी का खुलासा होता है।
प्रत्येक उपनिर्देशिका अपने स्वयं के Dockerfile, docker-compose.yml, और README के साथ एक स्व-निहित प्रोजेक्ट है। संक्षेप में, किसी भी एक के लिए:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
भेद्यता सारांश
| गुण | मान |
|---|---|
| घटक | camel-langchain4j-tools (also camel-langchain4j-agent, camel-spring-ai-tools) |
| प्रभावित क्लास | org.apache.camel.component.langchain4j.tools.LangChain4jToolsProducer#invokeTools |
| CWE | CWE-20 (अनुचित इनपुट सत्यापन) — बिना फ़िल्टर किए गए टूल-कॉल तर्क Exchange नियंत्रण हेडर बन जाते हैं |
| प्रभाव | RCE / SSRF / मनमाना फ़ाइल लेखन, टूल रूट के डाउनस्ट्रीम प्रोड्यूसर पर निर्भर करता है |
| प्रभावित संस्करण | 4.8.0–4.14.7, 4.15.0–4.18.2, 4.19.0–4.20.x |
| ठीक किए गए संस्करण | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23621 (PR apache/camel#23535) |
| श्रेय | Yu Bao (PayPal) |
एडवाइज़री: https://camel.apache.org/security/CVE-2026-49042.html
अस्वीकरण
ये रिप्रोड्यूसर केवल सुरक्षा अनुसंधान और अधिकृत परीक्षण के लिए प्रदान किए गए हैं, एक सार्वजनिक रूप से प्रकट और ठीक की गई भेद्यता के लिए। बिना स्पष्ट अनुमति के उन्हें सिस्टम के विरुद्ध उपयोग न करें।