
CVE-2026-48203 の再現ツール: Apache Camel camel-solr の SolrParam./SolrField. ヘッダーインジェクションにより、Solr ドキュメントフィールドインジェクションと shards パラメータを介した SSRF を可能にする (4.14.8/4.18.3/4.21.0 で修正済み)
| ランタイム | ディレクトリ | スタック |
|---|
| 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で修正済み)であり、両方とも同一の欠陥を示しています:
camel-solrプロデューサーは、SolrField. で始まるインバウンドヘッダーをインデックス化されたドキュメントにコピーし、SolrParam. で始まるヘッダーをSolrリクエストパラメータにコピーします。これらのプレフィックスは Camel* 名前空間に含まれていないため、HTTP境界フィルターはそれらを除去しません — 修正された「メモを保存」/「検索」エンドポイントのクライアントが、任意のドキュメントフィールド(CWE-74)とSolrリクエストパラメータを注入し、サーバーサイドリクエストフォージェリ(CWE-918)用の shards も含めて注入します。
両方のバリアントはnetty-httpコンシューマーを使用しています(サーブレットコンテナではありません): SolrField. / SolrParam. プレフィックスの一致は大文字と小文字を区別し、netty-httpはサーブレットコンテナが小文字化するであろうヘッダー名の大文字小文字を保持します。
各サブディレクトリは自己完結型のプロジェクト(独自の docker-compose.yml によって起動されるSolrコンテナを含む)であり、独自の Dockerfile とREADMEを備えています。簡単に言うと、どちらの場合も:
cd camel-spring-boot # または: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Solrコンテナは -Dsolr.disable.allowUrls=true で実行されるため、shards SSRFは内部リスナーに到達します。allowUrls が設定されたSolrでは、Solr自身の防御がshards SSRFをブロックしますが、SolrField.* ドキュメントフィールドインジェクションは影響を受けません。
| プロパティ | 値 |
|---|---|
| コンポーネント | camel-solr |
| 影響を受けるクラス | org.apache.camel.component.solr.SolrProducer / SolrRequestConverter(プレフィックス SolrParam. / SolrField.) |
| CWE | CWE-20 → CWE-74(フィールドインジェクション)および CWE-918(SSRF) |
| 影響 | 任意のSolrリクエストパラメータ(shards/stream.url → SSRF、qt → 管理ハンドラー)および任意のインデックス化ドキュメントフィールドを注入 |
| 影響を受けるバージョン | 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-23597(PR apache/camel#23410) |
| クレジット | Yu Bao(PayPal) |
これらのリプロデューサーは、セキュリティ研究および許可されたテストのみを目的として提供されており、公開され修正済みの脆弱性に対するものです。明示的な許可なくシステムに対してこれらを使用しないでください。