CVE-2026-95629
Apache Camel:Camel-Docling 未验证的输出路径标头允许将转换输出写入任意目录
- 已发布
- 2026年10月26日
- 已更新
- 2026年10月26日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月30日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L低 · 未来 30 天
- 百分位
- 26.9%
- 型号日期
- 2026年10月29日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Apache Camel Docling 组件中存在将路径名不当限制在受限目录内的漏洞(“路径遍历”)。此问题影响 Apache Camel:从 4.15.0 到 4.18.5 之前,从 4.19.0 到 4.22.2 之前。DoclingProducer 以 CLI 模式(默认模式)运行外部 docling 工具,并通过 --output 标志告知其将转换后的文档写入何处。当设置了 CamelDoclingOutputFilePath 头时,addOutputDirectoryArguments 会将其值原样传递给该标志:该值未被规范化,绝对路径或包含 .. 段的路径会被按原样接受,且没有任何端点选项能将其限制在某个目录内。针对 CVE-2026-40047 的修复所添加的自定义参数验证会拒绝 CamelDoclingCustomArguments 头中的 --output 和 -o 标志,并告知调用方改用此头来选择输出目录,因此这个决定 docling 写入位置的值在到达命令行时,没有经过任何应用于自定义参数的检查。Docling 会将转换结果(Markdown、HTML、JSON 或文本)写入该目录,并以输入文件命名该文件,而生产者随后只删除自己的临时目录,因此该文件会被保留在原处。因此,能够设置该头的一方可以促使转换输出被创建在 Camel 进程可写入的任何目录中。此类文件的内容是对消息所携带文档的转换结果,因此其内容由提供该文档的一方所塑造,但并非逐字节写入;当文档内容通过消息体到达时,生产者会将其存储在一个随机临时名称下,输出文件随后会沿用该名称。该头属于 Camel 头命名空间,应用 Camel 默认头过滤的消费者(例如 JMS 和 Kafka 消费者)会从传入消息中移除该命名空间,因此该问题会在路由将外部影响的值转发到该头中,或消费者在没有该过滤的情况下映射传入头时被触发。docling-serve 模式不使用该头。建议用户升级到 4.23.0 版本,该版本修复了此问题。如果用户处于 4.22.x 发布流,建议升级到 4.22.2。如果用户处于 4.18.x 发布流,建议升级到 4.18.5。该修复添加了一个默认未设置的 outputBaseDirectory 端点选项,因此在升级后,请在每个其 CamelDoclingOutputFilePath 头可能携带来自部署外部影响的值的 docling 端点上设置该选项;若不设置,该头会被规范化,但仍可指定任意目录。4.15.x 至 4.17.x 以及 4.19.x 至 4.21.x 发布线在此问题解决之前已达到生命周期终止,将不会获得修复,因此使用这些版本的部署必须迁移到受支持的版本。对于无法立即升级的部署,请勿使用来源于部署外部的值构建 CamelDoclingOutputFilePath 头,在来自外部的消息到达 docling 端点之前从这些消息中移除该头,并确保映射传入消息头的消费者丢弃 Camel 头命名空间,以便只有路由本身选择输出目录。
来源
针对 CVE-2026-95629 的可运行概念验证复现程序,该漏洞是 Apache Camel camel-docling 中的路径遍历缺陷,其中 output-path 请求头被原样传递给 docling 的 --output 参数。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。