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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-85245 — CVE-2026-85245(camel-thrift のクロスエクスチェンジ情報漏えい)を再現する実行可能な Spring Boot の概念実証。影響を受けるバージョンと修正済みバージョンの比較、および緩和策のメモを含む。 | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-85245
防御ツール脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育
GitHuboscerd/cve-2026-85245

CVE-2026-85245

CVE-2026-85245(camel-thrift のクロスエクスチェンジ情報漏えい)を再現する実行可能な Spring Boot の概念実証。影響を受けるバージョンと修正済みバージョンの比較、および緩和策のメモを含む。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-85245 — camel-thrift: クロスエクスチェンジのデータ漏洩(共有 defaultInstance)

Apache Camel の脆弱性に対する実行可能な概念実証(PoC)再現プログラムです。この脆弱性では、Thrift データフォーマットが対象型の新規コピーではなく共有の defaultInstance にアンマーシャルし、その共有オブジェクトをエクスチェンジボディとして返していました。インスタンスはプロセス全体で共有されるため、あるメッセージのアンマーシャル中に書き込まれた状態がオブジェクト上に残り、同じ型を使用する後続のすべてのメッセージから見える状態になっていました。後続のペイロードに存在しないフィールドは前のメッセージの値を保持していたため、ある送信者のコンテンツが別の送信者のメッセージ処理中に読み取られる可能性があり、また並行するエクスチェンジ同士が互いの部分的に書き込まれた状態を観測する可能性がありました。同一ルートを通じて複数のテナントやユーザーにサービスを提供するデプロイメントでは、これは一方の当事者のデータが他方に開示されることを意味します。

Spring Boot のみ。 camel-quarkus-thrift 拡張機能は存在しないため、この再現プログラムは単一の Camel Spring Boot モジュールを提供します。(この欠陥はコンポーネントの ThriftDataFormat にあり、ランタイムに依存しません。)

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

実証内容

ルートは 1 つの ThriftDataFormat(生成された Thrift 型 Work に基づく)を定義し、通常のルートと同様にすべてのメッセージで再利用します。2 つのテナントがこのルートを通じてメッセージを送信します:

  • テナント A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — オプションの comment フィールドに機密データが含まれています;
  • テナント B: Work{num1=3, op=SUBTRACT} — comment フィールドはありません。

ルートはテナント A のメッセージをアンマーシャルし、続いてテナント B のメッセージをアンマーシャルします。

  • 影響あり: テナント B のアンマーシャルされたオブジェクトがテナント A の comment を保持したまま返されます — Thrift は受信バイトに存在するフィールドのみを代入し、両方のメッセージが同じ共有インスタンスにデシリアライズされ(そしてそのまま返され)たため、B に存在しないフィールドは A の値を保持しました。2 つのボディは文字通り同一のオブジェクトです。
  • 修正済み: テナント B の comment は null です — 各エクスチェンジが独自のクリアされたコピーを取得します。
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

脆弱性の概要

項目値
コンポーネントcamel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (データ要素の誤ったセッションへの露出)
深刻度MEDIUM
攻撃ベクトル同一ルートを通る同じ Thrift 型の2つのメッセージ。フィールドを省略した後続のメッセージが、先行メッセージの値を継承する
影響交換間 / テナント間のデータ開示。並行する交換が互いの部分的に書き込まれた状態を観測できる
影響を受けるバージョン4.0.0 から 4.18.5 未満、4.19.0 から 4.22.1 未満
修正済みバージョン4.18.5、4.22.1、4.23.0
JIRACAMEL-24442
クレジットClaude Security Scan Tool

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

生成された Thrift 型 (Work、Operation) は、Apache Camel 自身の camel-thrift テストからの公開テストフィクスチャです。

修正内容

ThriftDataFormat.unmarshal は、交換ごとのコピーにデシリアライズするようになりました: TBase instance = defaultInstance.deepCopy(); instance.clear(); — その後、バイト列を instance にデシリアライズして 返します。各交換はそれぞれクリアされた独自のオブジェクトを取得するため、メッセージ間でフィールドが引き継がれることも、2つの交換がボディを共有することもありません。

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

データフォーマットの実行直後に、アンマーシャルされたボディを新しいインスタンスにコピーし、返されたオブジェクトへの参照を保持しないでください。

免責事項

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

ツールをダウンロード