
同じ Apache Camel の脆弱性に対する実行可能な概念実証(PoC)再現コードで、ランタイムごとに 1 つ用意しています:
| ランタイム | ディレクトリ | スタック |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-pqc 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0(Camel 4.20.0 をバンドル) |
どちらも影響を受けるバージョンです(4.18.3 / 4.21.0 で修正済み)。また、両方とも同一の欠陥を実証しています:
FileBasedKeyLifecycleManager はポスト量子鍵を PKCS#8/X.509 JSON として永続化しますが、レガシー(Java シリアライズ)鍵ファイルの移行には未加工の ObjectInputStream を ObjectInputFilter なしで 使用します — これは CVE-2026-40048 の不完全な修正の残骸です。getKey(keyId) は migrateLegacyKey() にフォールバックし、攻撃者が仕掛けた <keyId>.key ファイルをデシリアライズします。KeyPair へのキャストは readObject() が戻った 後 にのみ行われるため、細工されたオブジェクトが先に実行されます(CWE-502)。
各サブディレクトリは、独自の 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-46590.html
これらの再現コードは、一般に公開され修正済みの脆弱性に対するセキュリティ研究および許可されたテスト専用として提供されます。明示的な許可なしにシステムに対して使用しないでください。
| プロパティ | 値 |
|---|
| コンポーネント | camel-pqc |
| 影響を受けるクラス | org.apache.camel.component.pqc.lifecycle.FileBasedKeyLifecycleManager#migrateLegacyKey(および migrateLegacyMetadata)、さらに HashicorpVault / AwsSecretsManager 系も対象 |
| CWE | CWE-502(信頼できないデータのデシリアライゼーション) |
| 影響 | レガシー鍵 / メタデータ値を読み取ると、鍵管理アプリケーションでコードが実行される |
| 影響を受けるバージョン | 4.18.0 から 4.18.3 未満、4.19.0 から 4.21.0 未満(camel-pqc 鍵マネージャは 4.16.0 より前には存在しないため、4.14.x は影響を受けません) |
| 修正済みバージョン | 4.18.3、4.21.0 |
| JIRA | CAMEL-23726(PR apache/camel#23912、バックポート #23914) |
| 報告者 | Yu Bao(PayPal) |