CVE-2026-88901
Apache Camel:Camel-Smooks XML 外部实体处理,默认解析外部实体
- 已发布
- 2026年10月19日
- 已更新
- 2026年10月19日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月21日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L低 · 未来 30 天
- 百分位
- 38.7%
- 型号日期
- 2026年10月25日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Apache Camel 中的 XML 外部实体引用限制不当漏洞。此问题影响 Apache Camel:从 4.7.0 到 4.18.5 之前,从 4.19.0 到 4.22.1 之前。Apache Camel 中 Smooks 组件(camel-smooks)的 XML 外部实体引用限制不当,允许提供 XML 消息体的攻击者通过该消息体中的外部实体声明读取本地文件或向内部网络位置发起请求。此问题影响 Apache Camel:从 4.7.0 到 4.18.5 之前,从 4.19.0 到 4.22.1 之前。Smooks 数据格式(.unmarshal().smooks(...))和 Smooks 组件(smooks:)使用 Smooks 默认解析的读取器解析传入的 XML 消息体,即 Woodstox SAX 解析器。该读取器会解析外部通用实体和参数实体并加载外部 DTD,而 camel-smooks 未应用其他 Camel XML 组件所应用的任何解析器加固措施。因此,XML 文档中声明的带有外部子集的 DOCTYPE 或外部通用实体,会在消息体被 unmarshal 时被解析和展开,解析后的内容会被绑定到 unmarshal 结果中,并在 InOut 路由上返回。因此,XML 到达 camel-smooks 数据格式或端点的外部发送者可以读取 Camel 进程可读的文件,并导致该进程向文档中指定的主机发起请求。无需任何非默认选项,因为解析外部实体是默认行为。声明了自己的读取器的配置——EDI、CSV、JSON 或自定义读取器——不使用 XML 读取器,因此不受影响。建议用户升级到 4.18.5、4.22.1 或 4.23.0 版本,该版本修复了此问题。升级到 Apache Camel 4.23.0,该版本修复了此问题。使用 4.18.x LTS 发布流的用户应升级到 4.18.5。使用 4.22.x LTS 发布流的用户应升级到 4.22.1。camel-smooks 现在使用不解析外部通用实体或参数实体、也不加载外部 DTD 的 javax.xml.parsers.DocumentBuilder 解析 XML 消息体,并将生成的文档交给 Smooks,这与 org.apache.camel.converter.jaxp.XmlConverter 及其他 Camel XML 组件所使用的安全 XML 处理配置一致。此加固仅在 Smooks 配置使用其默认读取器解析 XML 时应用,因此 EDI、CSV、JSON 和自定义读取器配置以及 marshalling 方向均保持不变。新增的 allowExternalEntities 选项默认禁用,可为依赖外部实体解析的可信旧配置恢复之前的行为。camel-4.14.x 发布流及更早版本在此问题解决之前已达到生命周期终止,不会获得修复,因此这些线路上的部署必须迁移到受支持的版本。对于无法立即升级的部署,请勿将 camel-smooks 应用于来自不受信任发送者的 XML。
来源
可运行的 Spring Boot 概念验证,复现 Apache Camel camel-smooks 中的 CVE-2026-88901(XXE,CWE-611)漏洞,并包含受影响版本与已修补版本的对照运行。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。