CVE-2026-91858
Apache Camel:当存在第三方 JAXP TransformerFactory 时,Camel-FOP 会从不受信任的 XSL-FO 输入中解析外部 DTD 和实体
- 已发布
- 2026年10月19日
- 已更新
- 2026年10月19日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月21日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N低 · 未来 30 天
- 百分位
- 23.2%
- 型号日期
- 2026年10月25日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
FopProducer 通过 TransformerFactory.newInstance() 创建 javax.xml.transform.TransformerFactory,并在对消息体执行恒等变换之前仅启用 FEATURE_SECURE_PROCESSING,以此转换传入的 XSL-FO 消息体。在 JDK 内置的转换器上,仅该特性就已将 accessExternalDTD 和 accessExternalStylesheet 限制置空,因此外部 DTD 或实体都会被拒绝。当类路径上存在第三方 JAXP TransformerFactory(例如 Saxon-HE)时——比如因为应用同时使用了 camel-xslt-saxon 或 camel-saxon——TransformerFactory.newInstance() 会返回该实现,而仅靠 FEATURE_SECURE_PROCESSING 并不能限制其对外部资源的访问。此时,XSL-FO 文档中声明的带外部子集的 DOCTYPE 或外部通用实体,会在消息体被转换时被解析并展开。因此,外部发送者的 XSL-FO 若到达 fop 生产者,就可能读取 Camel 进程可读的文件,并导致该进程向文档中指定的主机发起请求。camel-fop 自身不会引入此类工厂,并且排除了 Xalan,因此使用 JDK 转换器的默认部署不受影响;该问题仅在另一组件已将替代的 JAXP TransformerFactory 放入类路径时才会被触发。4.14.x 及更早版本系列在此问题解决之前已达到生命周期终止,不会获得修复。
来源
针对 CVE-2026-91858 的可运行 Spring Boot 与 Quarkus 复现程序,该漏洞是 Apache Camel camel-fop 中经由第三方 TransformerFactory 触发的 XXE,并包含受影响版本与已修补版本的验证。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。