
CVE-2026-49099(Apache Camel camel-salesforce)用のPoC再現コード:Camelプレフィックスが付いていないsObjectQueryヘッダーはHTTPヘッダーフィルターを迂回し、プロデューサーの設定済みSOQLを上書きします(SOQLインジェクション/アクセス制御の不備)。4.14.8/4.18.3/4.21.0で修正済み。
sObjectQuery ヘッダーインジェクション同じ Apache Camel の脆弱性に対する実行可能な概念実証(PoC)再現コードです。ランタイムごとに 1 つ用意しています:
| Runtime | Directory | Stack |
|---|---|---|
| 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 で修正)、同じ欠陥を再現しています:
AbstractSalesforceProcessor.getParameter() は sObjectQuery ヘッダー(および関連する apexUrl、sObjectName など)を、エンドポイントに設定された値に先立って解決します。これらのヘッダー名は裸の、Camel プレフィックスが付いていない文字列であり、camel-salesforce には HeaderFilterStrategy が同梱されていません。そのため、HTTP 境界フィルター(Camel* のみを除去する HttpHeaderFilterStrategy)は、受信 HTTP ヘッダーをそのまま通し、ルートのスコープ付き SOQL を上書きさせます — SOQL クエリの上書き / アクセス制御の破損(CWE-74 + CWE-639)です。
各サブディレクトリは、それぞれ独自の Dockerfile、docker-compose.yml、README を持つ自己完結型プロジェクトです。さらに、レコーディングスタンドインの salesforce コンポーネントを備えているため、Salesforce 組織、OAuth、ネットワークは不要です。つまり、どちらの場合も次のように実行します:
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
修正では、ヘッダー定数を CamelSalesforce* の命名規則(例: CamelSalesforceSObjectQuery)に改名し、他のすべての Camel* ヘッダーと同様に HTTP 境界で除去されるようにしています。
セキュリティ勧告: https://camel.apache.org/security/CVE-2026-49099.html
これらの再現コードは、一般に公開され修正済みの脆弱性に対するセキュリティ研究および許可されたテスト専用に提供されています。明示的な許可なくシステムに対して使用しないでください。
| Property | Value |
|---|
| Component | camel-salesforce |
| CWE | CWE-74 (Injection) / CWE-639 (Authorization Bypass Through User-Controlled Key) |
| Impact | 認証されていない HTTP クライアントが、フィルタリングされていないヘッダーを介してルートのスコープ付き SOQL/SOSL/Apex パラメータを上書きし、統合ユーザーの権限で意図したスコープ外のデータを読み取ったり操作したりできます |
| Affected Versions | 4.0.0 以上 4.14.8 未満、4.15.0 以上 4.18.3 未満、4.19.0 以上 4.21.0 未満 |
| Fixed Versions | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23716(PR apache/camel#23887) |
| Credit | Yu Bao (PayPal) |