CVE-2026-40047 (CVSS 9.1) - Improper Neutralization of Argument Delimiters in a Command ('Argument Injection
CVE-2026-40047是Apache Camel camel-docling组件中的参数注入与目录遍历漏洞(CVSS 9.1)。攻击者可通过构造恶意CamelDoclingCustomArguments头部,绕过硬编码黑名单,执行任意docling标志或读取任意文件。影响4.15.0至4.18.2版本,建议升级至4.18.3或4.19.0以上。
CVE-2026-40047 (CVSS 9.1) - Improper Neutralization of Argument Delimiters in a Command ('Argument Injection
📋 漏洞概述
Apache Camel camel-docling组件存在参数注入和目录遍历漏洞,允许攻击者通过未充分校验的CLI参数执行任意docling命令或访问任意文件。
📋 基础信息
| 受影响版本 | Apache Camel 4.15.0 至 4.18.2(含) |
| 漏洞类型 | 参数注入与目录遍历 |
| CVSS | 9.1 · Critical |
| CVE | CVE-2026-40047 |
🔬 漏洞根因
DoclingProducer在构造docling命令行时,将来自CamelDoclingCustomArguments头部的用户可控字符串列表直接追加至参数列表中。原实现仅基于黑名单过滤了若干禁用标志,并仅拒绝包含字面'../'的路径;但攻击者可利用其他目录穿越序列(如'..\'或'....//')绕过检测,同时无法识别未知但危险的docling标志,导致参数注入。
🎯 攻击场景
1. 前提:存在一个Camel路由,允许外部输入流入CamelDoclingCustomArguments头部或路径相关头部(如头信息从HTTP请求反序列化)。 2. 攻击者构造包含恶意参数的List<String>,例如['--untrusted-flag', '/tmp/../../etc/passwd']。 3. 该头部被传递给DoclingProducer,process()方法直接将其追加至参数列表。 4. Java ProcessBuilder以非shell方式执行docling二进制,但参数中包含未经校验的标志和遍历路径。 5. docling工具处理到注入的标志时可能执行意料之外的操作,或读取/写入指定路径外的文件(如读取/etc/passwd并输出至响应)。
💥 漏洞影响
攻击者可利用参数注入导致docling执行意外操作(如远程配置下载、信息泄露);通过目录遍历实现读取任意文件(如密钥、配置文件)或写入任意位置(如覆盖可执行文件),导致权限提升或进一步远程代码执行。影响范围为所有使用受影响组件的Apache Camel集成服务。
🛡️ 修复建议
立即升级至Apache Camel 4.18.3(4.18.x LTS)或4.19.0及以上版本。临时缓解措施:在路由层对CamelDoclingCustomArguments头部实施严格白名单校验,仅允许已知安全的docling标志,并限制所有路径参数为绝对路径并以预期基目录开头;或禁用访问该头部的路由输入。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2026-40047
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-40047
- https://github.com/oscerd/CVE-2026-40047
- 原始来源(NVD-Latest)
🚨 威胁评估
| 📈 EPSS 利用概率 | 低 (1.3%) (高于 66.0% 的漏洞) |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 1 个公开 PoC 仓库 |
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-07-09 08:13 | 来源: NVD-Latest
🤖 常见问题解答(FAQ)
❓ 该漏洞是否可远程利用?
是,若Camel路由暴露于外部输入(如HTTP、消息队列),攻击者无需认证即可通过控制CamelDoclingCustomArguments头部触发利用。
❓ 是否有公开可用的PoC?
是,GitHub仓库oscerd/CVE-2026-40047提供了复现该漏洞的PoC,演示了通过伪造参数列表触发目录遍历。
❓ 该漏洞是否可能导致完全远程代码执行?
直接OS命令注入不可能(因使用ProcessBuilder列表形式),但参数注入可指示docling执行危险操作(如下载恶意文件),结合目录遍历写入可执行文件,理论上可升级为RCE。