Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-83531 — CVE-2026-83531 に対応する実行可能な Spring Boot の概念実証で、Apache Camel の dynamic-router-control エンドポイントにおける式言語インジェクションを実証し、修正を検証します。 | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-83531
防御ツール脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用学習と教育
GitHuboscerd/cve-2026-83531

CVE-2026-83531

CVE-2026-83531 に対応する実行可能な Spring Boot の概念実証で、Apache Camel の dynamic-router-control エンドポイントにおける式言語インジェクションを実証し、修正を検証します。

リポジトリを見る
31日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-83531 — camel-dynamic-router: 制御エンドポイントにおける式言語インジェクション

Apache Camel の脆弱性に対する実行可能な概念実証(PoC)再現ツールです。この脆弱性では、dynamic-router-control エンドポイントが、サブスクリプションの述語(predicate)と、そのコンパイルに使用する言語名を受信メッセージから取得していました(DynamicRouterControlMessage の predicate / expressionLanguage フィールド、または CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage ヘッダー)。その後サービスはその言語を CamelContext から解決し、式を Predicate にコンパイルしていましたが、許可リストもオプトインも存在しませんでした。コンパイルされた述語は、そのチャネルを経由してルーティングされるすべての exchange に対して評価されていました。そのため、ルートが制御エンドポイントへ転送するトランスポート上にメッセージを送信できるアクターであれば誰でも、任意の式を送り込み、Camel プロセスの権限で評価させることができました。クラスパス上にある任意の言語を選択でき、常に存在してデフォルトであった simple も含まれていました。

Camel Spring Boot のみ。 camel-quarkus-dynamic-router 拡張機能は存在しないため、この再現ツールを Camel Quarkus 上で実行することはできません。

ランタイムディレクトリスタック
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0(影響あり、修正版 4.22.1)

実証内容

このアプリは Dynamic Router チャネル test(direct:start → dynamic-router://test)をセットアップします。攻撃者は、攻撃者が選択した述語式と言語を含むsubscribe制御メッセージを送信します:

CamelDynamicRouterPredicate          = ${bean:detonator?method=detonate}
CamelDynamicRouterExpressionLanguage = simple

次に、1つのメッセージがチャネルを経由してルーティングされ、チャネルがサブスクリプション述語を評価します。影響を受けるビルドでは、この式が実行され、detonator.detonate() が呼び出されます。これは、攻撃者が到達しうるあらゆる引数なしのレジストリメソッドの無害な代替物です(また、Groovy などのあらゆる言語が任意コード実行を可能にします)。修正済みビルドでは、制御エンドポイントがメッセージから述語や言語を受け取ることを拒否します。

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

影響を受けたビルドで期待される出力:

Subscription accepted.
>>> PROVEN: the attacker-supplied predicate expression was compiled and evaluated, invoking
>>> detonator.detonate() with the privileges of the Camel process ...

修正済みビルドでは、サブスクライブは IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ... で拒否されます。

脆弱性の概要

プロパティ値
コンポーネントcamel-dynamic-router(dynamic-router-control エンドポイント)
CWECWE-94(コードインジェクション)、CWE-917(式言語インジェクション)
深刻度HIGH
攻撃ベクトル述語式と言語を供給する制御メッセージ(subscribe/update)であり、そのルートが当該メッセージを dynamic-router-control エンドポイントへ転送するトランスポート上で送信されるもの
影響攻撃者が選択した式(クラスパス上の任意の言語)が Camel プロセスの権限で評価される — コード実行
影響を受けるバージョン4.4.0 から 4.18.5 未満、4.19.0 から 4.22.1 未満
修正済みバージョン4.18.5、4.22.1、4.23.0
JIRACAMEL-24576
クレジットLeon Zlobecki

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

修正内容

述語式と言語は、デフォルトでは制御メッセージから取得されなくなりました。これらを供給する制御メッセージは、ルート作成者が dynamic-router-control エンドポイントで allowPredicateFromMessage=true を明示的に指定してオプトインしない限り拒否されます。想定される方法は、4.4.0 より前のリリースと同様に、エンドポイント URI 上で predicate と expressionLanguage を設定する(ルート作成者が制御する)ことです。

アップグレードできない場合の緩和策

外部由来のメッセージを dynamic-router-control エンドポイントへ転送しないでください。サブスクリプションはルート作成者が制御するエンドポイントからのみ管理し、制御チャネルに到達できるトランスポートを制限してください。

免責事項

このリポジトリは教育および防御目的で公開されています。Apache Camel ユーザーが脆弱性を理解し、影響を受けているかどうかを確認し、アップグレードによって解決されることを検証できるようにするためです。ペイロードは無害なマーカー Bean です。本資料を、所有または運用していないシステムに対して使用しないでください。

ツールをダウンロード