CVE-2026-40047
Apache Camel:Camel-Docling:对自定义CLI参数的验证不足,导致DoclingProducer中存在参数注入和路径遍历漏洞
- 已发布
- 2026年7月6日
- 已更新
- 2026年7月6日
- 分配 CNA
- apache
- 观察到的证据
- 2026年8月6日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N低 · 未来 30 天
- 百分位
- 83.4%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Apache Camel Docling 组件中存在命令参数分隔符未正确中和('参数注入')漏洞。camel-docling 组件通过 DoclingProducer 组装参数列表并借助 java.lang.ProcessBuilder 执行外部 `docling` 命令行工具。通过 `CamelDoclingCustomArguments` 交换头(一个 List<String>)提供的自定义 CLI 参数被追加到该参数列表时,验证不足:原始实现依赖一个禁用标志黑名单,并且仅拒绝包含字面 `../` 序列的路径值。因此,如果 Camel 路由将受外部影响的数据转发到 `CamelDoclingCustomArguments` 头(或用于构建调用的路径相关头),则可能导致生产者向子进程传递无法识别或非预期的 `docling` CLI 标志,并可能提供路径类参数值,这些值通过未被字面 `../` 检查捕获的遍历序列解析到预期目录之外。由于 Camel 本身根据这些值构建 `docling` 调用,组件有责任对其进行约束,而薄弱的验证允许了传递给外部工具的参数中出现 CLI 参数注入和目录遍历。该调用使用基于列表形式的 ProcessBuilder,因此 shell 不会解释参数值;通过 shell 元字符进行的 OS 命令注入不可能实现,修复中添加的元字符拒绝属于纵深防御。此问题影响 Apache Camel:4.15.0 至 4.18.3 之前版本。建议用户升级到包含 CAMEL-23212 修复的版本。主线版本从 Apache Camel 4.19.0(以及 4.20.0 等后续版本)开始包含该修复。对于使用 4.18.x LTS 发布流的用户,请升级到 4.18.3。该修复将黑名单替换为严格的已识别 `docling` CLI 标志白名单(拒绝任何无法识别的标志,并拒绝生产者管理的标志,如输出目录标志),防御性地拒绝参数值中的 shell 元字符,并在验证前使用 Path.normalize() 规范化路径类值,以便检测绕过字面 `../` 检查的遍历序列。作为纵深防御,路由作者应避免将不受信任的消息内容映射到 `CamelDoclingCustomArguments` 头和路径相关头中,并应从来自不受信任生产者的消息中剥离 Camel 内部头。
来源
2Apache Camel Docling 参数验证风险的专业漏洞评估报告,涵盖技术影响、修复方案及缓解策略。
CVE-2026-40047 复现器:Apache Camel camel-docling CLI 参数注入 / 路径遍历
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。