
CVE-2026-46592 の再現コード:Apache Camel の camel-cxf operationName ヘッダーインジェクションが、呼び出される SOAP オペレーション(confused deputy)を読み取り操作から破壊的な操作へとリダイレクトする(4.14.8/4.18.3/4.21.0 で修正済み)
operationName ヘッダーインジェクション(SOAPオペレーションリダイレクト)同じApache Camel脆弱性に対する実行可能なプルーフ・オブ・コンセプト(PoC)再現コードです。ランタイムごとに1つずつ用意しています:
| ランタイム | ディレクトリ | スタック | バックエンドSOAPサービス |
|---|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | 独自ポート:9000上のCXF ServerFactoryBean |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0(Camel 4.20.0をバンドル) | 管理対象サーバー上のquarkus-cxf、/soapservice/account |
両方とも影響を受けるバージョンです(4.14.8 / 4.18.3 / 4.21.0で修正済み)。両方で同じ欠陥が再現されます:
CxfProducer#getBindingOperationInfoは、最初にoperationNameメッセージヘッダーを探し、それが存在しない場合のみエンドポイントのdefaultOperationNameにフォールバックします。このヘッダー定数の値はCamelCxfOperationNameではなくプレーンな文字列operationNameであるため、HTTP境界フィルター(Camel*のみを除去する)は、この名前のインバウンドHTTPヘッダーをそのまま通します。信頼できないクライアントがoperationName: deleteAccountを追加すると、ルートに固定された読み取り専用のgetBalanceが破壊的な呼び出しになります(CWE-441、Confused Deputy)。
2つのバリアントは、バックエンドSOAPサービスの立ち上げ方法のみが異なります。Quarkusバリアントは管理対象Quarkus HTTPサーバー上でquarkus-cxfを使って公開する(したがってコントラクトにはJAX-WSの
@WebServiceアノテーションが付く)のに対し、Spring Bootバリアントは別ポートのCXFServerFactoryBeanでプログラム的に作成します。欠陥自体は変わりません。
各サブディレクトリは自己完結型プロジェクトで、それぞれ独自の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-46592.html
これらの再現コードは、公開済みかつ修正済みの脆弱性に対するセキュリティ研究および許可されたテスト専用として提供されています。明示的な許可なくシステムに対して使用しないでください。
| プロパティ | 値 |
|---|
| コンポーネント | camel-cxf(camel-cxf-soap。定数はcamel-cxf-common内にあるため、camel-cxfrsも影響を受けます) |
| 影響を受けるクラス | org.apache.camel.component.cxf.jaxws.CxfProducer#getBindingOperationInfoがCxfConstants.OPERATION_NAME("operationName")を読み取る |
| CWE | CWE-20(不適切な入力検証)/ CWE-441(意図しないプロキシまたは仲介 — Confused Deputy) |
| 影響 | HTTPクライアントがoperationNameを設定すると、プロデューサーは異なるSOAPオペレーション(例:破壊的なもの)を呼び出します |
| 影響を受けるバージョン | 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-23526(PR apache/camel#23326) |
| クレジット | Yu Bao(PayPal) |