Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-88901 — 可运行的 Spring Boot 概念验证,复现 Apache Camel camel-smooks 中的 CVE-2026-88901(XXE,CWE-611)漏洞,并包含受影响版本与已修补版本的对照运行。 | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-88901
防御工具漏洞分析漏洞利用Web应用程序漏洞利用Web安全学习与教育
GitHuboscerd/cve-2026-88901

CVE-2026-88901

可运行的 Spring Boot 概念验证,复现 Apache Camel camel-smooks 中的 CVE-2026-88901(XXE,CWE-611)漏洞,并包含受影响版本与已修补版本的对照运行。

查看仓库
31天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-88901 — camel-smooks:XML 外部实体(XXE)处理

针对 Apache Camel 漏洞的可运行概念验证复现程序,该漏洞中 Smooks 数据格式 (.unmarshal().smooks(...))和 Smooks 组件(smooks:)使用 Smooks 默认解析的读取器 (Woodstox SAX 解析器)解析传入的 XML 正文,该读取器会解析外部通用实体和参数实体并 加载外部 DTD——而 camel-smooks 未应用其他 Camel XML 组件所应用的任何解析器加固措施。 因此,XML 文档中声明的带有外部子集或外部通用实体的 DOCTYPE 会在正文被反序列化时被解析 并展开,解析后的内容会被绑定到结果中。外部发送者的 XML 若到达 camel-smooks 数据格式或端点, 便可读取 Camel 进程可读的文件,或使该进程向内部主机发起请求(CWE-611)。无需任何非默认选项—— 解析外部实体本就是默认行为。

仅限 Spring Boot。 本复现程序仅包含一个 Camel Spring Boot 模块。camel-smooks 没有 camel-quarkus-smooks 扩展,因此没有可复现的 Quarkus 对应版本。Spring Boot 模块演示了 受影响以及修复后的行为。

运行时目录技术栈
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-smooks 4.22.0(受影响;修复版本 4.22.1)

演示内容

驱动程序复刻了修复本身的回归测试(SmooksDataFormatXmlSecurityTest)。一个无害的标记文件被 写入临时目录,并通过真实的 SmooksDataFormat 使用原版 smooks-config.xml(将文档绑定到 Customer bean) 对 XML <customer> 文档进行反序列化。该文档的 firstName 是一个指向标记文件的外部实体:

<!DOCTYPE customer [<!ENTITY xxe SYSTEM "file:///…/secret.txt">]>
<customer><firstName>&xxe;</firstName>…</customer>
  • 受影响:实体被解析,因此标记文件的内容被绑定到 Customer.firstName —— 该文件泄漏到了反序列化后的 bean 中。
  • 已修复:请求体使用加固的 DocumentBuilder 进行预解析(禁用外部实体和外部 DTD 加载),因此实体不会被解析,标记也永远不会出现。
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: firstName = the marker file content; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-88901-smooks-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: firstName null, marker not leaked; >>> Not exploited

漏洞摘要

属性值
组件camel-smooks(Smooks 数据格式与组件)
CWECWE-611(XML 外部实体引用限制不当)
严重性高
攻击向量外部发送方提供 XML 消息体,该消息体由使用默认 XML 读取器的 camel-smooks 数据格式或端点进行反序列化
影响读取 Camel 进程可读的本地文件;向文档指定的内部主机发起 SSRF
受影响版本从 4.7.0 起至 4.18.5 之前,从 4.19.0 起至 4.22.1 之前
修复版本4.18.5、4.22.1、4.23.0
JIRACAMEL-24677
报告者h1ei1

公告:https://camel.apache.org/security/CVE-2026-88901.html

修复方案

camel-smooks 现在会使用配置了 FEATURE_SECURE_PROCESSING 并禁用了外部通用实体、外部参数实体和外部 DTD 加载的 javax.xml.parsers.DocumentBuilder 对不可信 XML 进行预解析,然后将生成的 DOM 交给 Smooks——这与 XmlConverter 及其他 Camel XML 组件所使用的安全配置一致。该加固仅在 Smooks 配置使用其默认读取器解析 XML 时生效(因此 EDI、CSV、JSON 和自定义读取器配置以及编组方向均不受影响)。新增的 allowExternalEntities 选项默认禁用,可为受信任的旧版配置恢复原有行为。

无法升级时的缓解措施

请勿将 camel-smooks 应用于从不可信发送方接收的 XML。

免责声明

本仓库出于教育和防御目的发布:帮助 Apache Camel 用户理解该漏洞、验证自身是否受影响,并确认升级可解决该问题。“secret”文件由复现程序自身在临时目录中创建,仅包含一个无害的标记字符串;检查完成后即被删除。请勿将本材料用于您不拥有或运营的系统。

下载工具