
Apache Camelの脆弱性に対する実行可能な概念実証(PoC)再現環境です。この脆弱性では、AS2レシーバーが非同期のMessage Disposition Notification(MDN)を、送信者が指定したアドレス(Receipt-Delivery-Option)へ制約なしに配信していました。したがって、リモートのパートナーが、CamelインスタンスがMDN配信時に接続するホストを選択できてしまいます。これはAS2レシーバーの立場からのサーバーサイドリクエストフォージェリ(SSRF)であり、デプロイメントのネットワーク内部からのみルーティング可能なホストに到達します。さらに、MDN配信に認証情報が設定されている場合、それらの認証情報が攻撃者の選択した宛先に提示されます。
| ランタイム | ディレクトリ | スタック |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-as2 4.22.0(影響あり、修正版 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-as2 3.29.0(Camel 4.15.0、影響あり、修正版コントロール 3.40.0 / Camel 4.22.1) |
このアプリは単一のJVM内で以下を実行します:
as2://server/listen、ポート8888);as2://client/send)。receiptDeliveryOptionは内部専用のURL(127.0.0.1:9099、Dockerが公開しないポート — デプロイメント内部からのみ到達可能なホストの代役)を指します;影響を受けるビルドでは、レシーバーはMDNを配信するために攻撃者が選択した内部URLへ接続し、自身のMDN配信認証情報(Authorization: Basic …)をそこに提示します。修正済みビルドでは、これらの認証情報は送信されません(許可リストに登録されたホストにのみ付与されます)。また、新しいasyncMdnAllowedHostsオプションが配信先ホストを完全に制限します。
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
影響を受けたビルドで期待される出力:
Internal host connections observed:
POST /internal-mdn-sink (Authorization=Basic bWRuLXBhcnRuZXItdXNlcjpNRE4tREVMSVZFUlktU0VDUkVU)
>>> PROVEN: the AS2 receiver connected to the sender-chosen internal URL to deliver the async MDN
>>> (server-side request forgery) AND presented its configured MDN-delivery credentials ...
(Authorization の値は mdn-partner-user:MDN-DELIVERY-SECRET にデコードされます。)修正済みビルドでは、接続は
Authorization=null を示します — 認証情報はもはや送信者が選択したホストに提示されません。
| 項目 | 値 |
|---|---|
| コンポーネント | camel-as2 |
| CWE | CWE-918(サーバーサイドリクエストフォージェリ)、認証情報の漏洩(CWE-200) |
| 深刻度 | HIGH |
| 攻撃ベクトル | AS2 送信者が攻撃者の選択した Receipt-Delivery-Option アドレスを指定して非同期 MDN を要求する |
| 影響 | 受信側からのサーバーサイドリクエストフォージェリ(内部ホストへの到達)、攻撃者の選択したホストへの MDN 配信認証情報の漏洩 |
| 影響を受けるバージョン | 4.0.0 から 4.18.5 より前、4.19.0 から 4.22.1 より前 |
| 修正済みバージョン | 4.18.5、4.22.1、4.23.0 |
| JIRA | CAMEL-24417 |
| クレジット | Claude Security Scan Tool |
アドバイザリ: https://camel.apache.org/security/CVE-2026-80344.html
非同期 MDN の宛先は、受信メッセージからそのまま取得されるのではなく、制約されるようになりました。新しい
asyncMdnAllowedHosts オプション(ラベル security)は、MDN の配信先として許可するホストを許可リストに登録し、
設定された MDN 配信認証情報は、宛先が許可リストに登録されている場合にのみ付加されます — したがって、デフォルト
(許可リストなし)では、認証情報が送信者の選択したホストに提示されることは決してありません。
AS2 受信側からのアウトバウンド接続を、正当に受領確認を配信するパートナーのエンドポイントに制限し、 それらのパートナー以外のホストに対して有効な認証情報を MDN 配信に付加しないでください。
このリポジトリは教育および防御目的で公開されています。Apache Camel ユーザーが脆弱性を理解し、影響を受けているかどうかを確認し、アップグレードによって解決されることを確証できるようにするためです。「認証情報」および内部シンクは、無害なローカルフィクスチャです。所有または運用していないシステムに対してこの資料を使用しないでください。