
CVE-2026-79985 के लिए रिप्रोड्यूसर और विश्लेषण, Apache Camel camel-smb में एक पाथ ट्रैवर्सल जहाँ शेयर-लिस्टिंग नाम डायरेक्टरी कंटेनमेंट को बायपास करते हैं, प्रभावित रूट और फिक्स विवरण के साथ।
Apache Camel की उस भेद्यता के लिए reproducer repository जहाँ smb consumer प्रत्येक polled फ़ाइल का remote path
configured directory को SMB share listing में बताए गए नाम के साथ जोड़कर बनाता है, बिना किसी containment जाँच के।
SmbConsumer listing को स्वयं traverse करता है (RemoteFileConsumer के माध्यम से नहीं), केवल ठीक-ठीक . और ..
entries को छोड़ता है, इसलिए किसी अन्य रूप में traversal segments लिए हुए नाम को बिना जाँच के जोड़ दिया जाता था — जो
retrieval के लिए polled directory के बाहर के path पर resolve होता था और, delete/move/preMove/moveFailed/
readLock=rename के साथ, deletion या rename पर भी।
यह reproducer केवल author के लिए है — नीचे देखें — और यह runnable CVE-2026-79983 (
camel-ftp) और CVE-2026-79984 (camel-mina-sftp) का SMB sibling है, जो एक embedded malicious server के विरुद्ध समान root cause और fix को end to end प्रदर्शित करते हैं।
जैसा कि advisory स्वयं कहती है, SMB पर इस issue तक पहुँचने के लिए
"एक ऐसे server की आवश्यकता होती है जो ऐसा listing name उत्सर्जित करे जो एकल path segment न हो, जो कि एक conforming SMB2 implementation नहीं करता; exposure को अन्य remote-file consumers के समान आधार पर ठीक किया गया था, न कि इस scheme के विरुद्ध किसी प्रदर्शित proof of concept से।"
ऐसा कोई embeddable malicious SMB server नहीं है जो ऐसा नाम उत्सर्जित करे (FTP के विपरीत, जहाँ Apache MINA FtpServer का VFS
ऐसा करने के लिए बनाया जा सकता है, और SFTP के विपरीत, जहाँ Apache MINA SSHD के getShortName को override किया जा सकता है)। इसलिए यह repository
ठीक-ठीक affected consumer wiring रखता है (एक वास्तविक camel-smb route, देखें SmbRoute.java / SmbRoutes.java) और mechanism
तथा fix का दस्तावेज़ीकरण करता है, और runnable end-to-end प्रदर्शन को ऊपर दिए गए FTP और SFTP reproducers पर छोड़ देता है।
| Runtime | Directory | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-smb 4.22.0 (affected; fixed 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-smb 3.29.0 (Camel 4.15.0, affected) |
दोनों modules बिना किसी SMB server के साफ़-सुथरे compile और start होते हैं (route autoStartup=false के साथ परिभाषित है)। ठीक-ठीक affected route को
अपने स्वयं के SMB server पर इंगित करने के लिए smb.host/smb.share/smb.username/smb.password के साथ
-Dsmb.enabled=true सेट करें।
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # prints the explanation + links to the runnable PoCs
docker compose down
| गुण | मान |
|---|---|
| घटक | camel-smb (smb स्कीम) |
| CWE | CWE-22 (किसी पथनाम का प्रतिबंधित निर्देशिका तक अनुचित सीमन) |
| गंभीरता | उच्च |
| आक्रमण वेक्टर | एक शेयर-लिस्टिंग नाम (सर्वर द्वारा प्रदान किया गया) जो एकल पथ खंड नहीं है |
| प्रभाव | पढ़ें — और, delete/move/readLock=rename के साथ, एंडपॉइंट के क्रेडेंशियल्स का उपयोग करते हुए, पोल की गई निर्देशिका के बाहर की फ़ाइलों को हटाएं या नाम बदलें |
| प्रभावित संस्करण | 4.2.0 से 4.18.5 से पहले, 4.19.0 से 4.22.1 से पहले |
| ठीक किए गए संस्करण | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24487 |
| श्रेय | NSSL, SJTU से Dilrevx |
सलाह: https://camel.apache.org/security/CVE-2026-79985.html
SmbConsumer अब अन्य रिमोट-फ़ाइल उपभोक्ताओं के समान कंटेनमेंट जाँच लागू करता है: एक हल किया गया पथ जो पोल की गई निर्देशिका के बाहर आता है, उसे चेतावनी के साथ छोड़ दिया जाता है, इसलिए ट्रैवर्सल खंडों वाला लिस्टिंग नाम अब retrieve/delete/rename ऑपरेंड तक नहीं पहुँचता।
उपभोक्ता को filter/antInclude/include के साथ सीमित करें ताकि केवल एकल-खंड नाम स्वीकार किए जाएं, और उन सर्वरों के विरुद्ध delete/move/preMove/moveFailed/readLock=rename से बचें जिनकी लिस्टिंग पूरी तरह विश्वसनीय नहीं है। जहाँ संभव हो, सर्वर खाते को पोल की गई निर्देशिका तक सीमित रखें।
यह रिपॉज़िटरी शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रकाशित की गई है: Apache Camel उपयोगकर्ताओं को भेद्यता को समझने, यह सत्यापित करने में मदद करने के लिए कि क्या वे प्रभावित हैं, और पुष्टि करने के लिए कि अपग्रेड करने से यह हल हो जाता है। इस सामग्री का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके आप स्वामी या संचालक नहीं हैं।