CVE-2026-78163
Apache Camel:Camel-Docling 未验证的消息体输入源导致服务器端请求伪造和本地文件泄露
- 已发布
- 2026年10月19日
- 已更新
- 2026年10月19日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月17日
初级CVSS
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N总结
Apache Camel Docling 组件中存在服务端请求伪造(SSRF)、路径名限制不当(“路径遍历”)以及向未授权行为者泄露敏感信息的漏洞。此问题影响 Apache Camel:从 4.15.0 到 4.18.5 之前,从 4.19.0 到 4.22.1 之前。DoclingProducer 通过检查 String 消息体的前缀来决定其含义。以 http:// 或 https:// 开头的消息体会作为远程 URL 交给 Docling 获取,以 / 开头或包含反斜杠的消息体会从本地文件系统读取,其他任何内容则写入临时文件并作为文档内容进行转换。该模式是隐式选择的,且没有任何端点选项允许路由作者将组件固定为单一解释,因此,一个本意是“转换消息体中到达的任何文本”的路由,只要文本恰好以这些前缀之一开头,就会悄然变成远程资源的获取器或本地文件的读取器。对派生值施加的唯一防护是大小检查,而该检查被包裹在存在性测试中,因此,解析不到任何内容的路径,或报告大小为零的伪文件,会完全未经检查就通过。五个调用点到达了这两个汇聚点:CLI 模式将该值作为 docling 子进程的最后一个位置参数追加,而 docling-serve 模式则将其传递给 HttpSource 供后端获取,或传递给 Files.readAllBytes,以便将内容进行 base64 编码并上传。由于交换消息体从不像 Camel 头命名空间那样由 HeaderFilterStrategy 过滤,能够将文本放入消息中、且该消息被路由转发到 docling 端点的发送者,可以在部署方未做任何选择加入的情况下到达这两个汇聚点。建议用户升级到 4.23.0 版本,该版本修复了此问题。如果用户处于 4.22.x 发布流,则建议升级到 4.22.1。如果用户处于 4.18.x 发布流,则建议升级到 4.18.5。4.14.x 发布流及更早版本在此问题解决之前已停止维护,将不会收到修复,因此这些线路上的部署必须迁移到受支持的版本。对于无法立即升级的部署,不要将源自部署外部的消息体路由到 docling 端点,并应通过类型化消息体(如 File、byte[] 或 InputStream)或通过 CamelDoclingInputFilePath 头传递文档,以便消息体永远不会受到前缀解释的影响。
来源
针对 Apache Camel camel-docling 中 CVE-2026-78163 的可运行概念验证复现程序,演示通过未经验证的 String 请求体输入实现 SSRF 和本地文件泄露,并包含修复后构建的对照测试。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。