
CVE-2026-46457 の再現コード — Apache Camel camel-nats のインバウンドヘッダーインジェクション (NATS パブリッシャーを介した Camel コントロールヘッダーインジェクション; CamelHttpUri -> SSRF)
同じApache Camelの脆弱性に対する、ランタイムごとに1つずつ用意された実行可能な概念実証(PoC)再現コードです:
| ランタイム | ディレクトリ | スタック |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0(Camel 4.20.0 をバンドル) |
どちらも影響を受けるバージョンです(4.14.8 / 4.18.3 / 4.21.0で修正済み)。両方とも同じ欠陥を示しています:
NatsConfiguration は headerFilterStrategy をインバウンドルールなしの素の new DefaultHeaderFilterStrategy() に
デフォルト設定するため、NatsConsumer はインバウンドのNATSメッセージヘッダーをすべてExchangeにコピーします —
CamelHttpUri も含みます。camel-httpプロデューサーはそのヘッダーをリクエストURIとして採用するため、消費される
サブジェクトにパブリッシュできる者は誰でも、アウトバウンドリクエストを任意のターゲットにリダイレクトできます(SSRF、CWE-20)。
同じ手法は、ヘッダーで制御される任意のプロデューサー(CamelFileName、CamelSqlQuery、...)にも適用できます。
各サブディレクトリは、自己完結型のプロジェクト(各自の docker-compose.yml で起動するNATSブローカー付き)で、独自の
Dockerfile と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-46457.html
これらの再現コードは、公開済みで修正済みの脆弱性に対するセキュリティ研究および許可されたテストのみを目的として 提供されています。明示的な許可なくシステムに対して使用しないでください。
| プロパティ | 値 |
|---|
| コンポーネント | camel-nats |
| 影響を受けるクラス | org.apache.camel.component.nats.NatsConfiguration(デフォルトの DefaultHeaderFilterStrategy)/ NatsConsumer |
| CWE | CWE-20: 不適切な入力検証 |
| 影響 | サブジェクトのパブリッシャーがCamelの制御ヘッダーを注入 → 下流のプロデューサーを操作(ここではSSRFを示す) |
| 影響を受けるバージョン | 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-23515 |