针对同一 Apache Camel 漏洞的可运行概念验证(PoC)复现程序,每种运行时各一个:
| 运行时 | 目录 | 技术栈 | 所展示的组件 |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | netty-http 与 undertow |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0(捆绑 Camel 4.20.0) | netty-http(无 camel-quarkus-undertow 扩展) |
两者均属于受影响版本(已在 4.14.8 / 4.18.3 / 4.21.0 中修复),且都展示了完全相同的缺陷:在 camel-netty-http(以及 camel-undertow)中,muteException 选项的默认值为 false,因此任何处理错误都会将完整的 Java 堆栈跟踪返回给 HTTP 客户端——从而泄露内部后端主机名、数据库 URL、凭据/保险库提示、库版本和源代码位置(CWE-209)。jetty/servlet 和 platform-http 已将其默认值设为 true。
每个子目录都是一个自包含的项目,带有各自的 Dockerfile、docker-compose.yml 和 README。简而言之,对于任一项目:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
安全公告:https://camel.apache.org/security/CVE-2026-49365.html
这些复现程序仅用于安全研究和授权测试,针对的是已公开披露并已修复的漏洞。未经明确许可,请勿将它们用于任何系统。
| 属性 | 值 |
|---|
| 组件 | camel-netty-http、camel-undertow |
| CWE | CWE-209(生成包含敏感信息的错误消息) |
| 影响 | 任何处理错误都会将完整的 Java 堆栈跟踪返回给未经认证的 HTTP 客户端 |
| 受影响版本 | 自 4.0.0 起至 4.14.8 之前,自 4.15.0 起至 4.18.3 之前,自 4.19.0 起至 4.21.0 之前 |
| 已修复版本 | 4.14.8、4.18.3、4.21.0 |
| JIRA | CAMEL-23651(PR apache/camel#23913) |
| 致谢 | Yu Bao(PayPal) |