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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-78162 — CVE-2026-78162 の実行可能な概念実証(PoC)再現ツール。Spring Boot と Quarkus の両環境において、Apache Camel camel-hazelcast における認証不要の Java デシリアライゼーションを実証します。 | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-78162
防御ツール脆弱性分析エクスプロイトウェブアプリケーション悪用学習と教育
GitHuboscerd/cve-2026-78162

CVE-2026-78162

CVE-2026-78162 の実行可能な概念実証(PoC)再現ツール。Spring Boot と Quarkus の両環境において、Apache Camel camel-hazelcast における認証不要の Java デシリアライゼーションを実証します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-78162 — camel-hazelcast: Javaデシリアライゼーションフィルタなしで管理されるインスタンス

Apache Camelの脆弱性に対する実行可能な概念実証(PoC)再現ツールです。この脆弱性では、camel-hazelcastがCVE-2026-43865のハードニングが到達しなかった2つの設定パス上で、JavaSerializationFilterConfigなしでHazelcastインスタンスを作成していました。これらのパスでは、Camelによって構築されたHazelcastメンバー/クライアントが、クラス制限なしでクラスタから読み取った値をデシリアライズするため、クラスタに公開できる攻撃者が、任意のシリアライズされたJavaオブジェクトをHazelcastのシリアライゼーション層内でデシリアライズさせることが可能になります — これがリモートコード実行(CWE-502)です。Hazelcastクラスタはデフォルトで認証もTLSも有効になっていません。

この再現ツールは、2つのパスのうち最も明確なもの、すなわち**ReplicatedHazelcastAggregationRepository**を駆動します。これはsuper.doStart()を呼び出さずにdoStart()をオーバーライドしており、影響を受けるビルドではデフォルトフィルタを適用せずに独自のローカルメンバーを起動します。(もう一方のパスであるhazelcastMode=client向けのHazelcastDefaultComponent#getOrCreateHzClientInstance()も、同じ修正でカバーされています。)

ランタイムディレクトリスタック
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-hazelcast 4.22.0(影響あり、4.22.1で修正)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-hazelcast 3.29.0(Camel 4.15.0、影響あり)

修正済みと影響ありの対照: 修正はCamel 4.18.5 / 4.22.1 / 4.23.0で提供されます。Spring Bootモジュールは影響を受けるビルド(4.22.0)と修正済みビルド(4.22.1)の両方を実行できるため、パッチ適用済みの挙動も実演できます。修正済みのCamelを同梱したCamel Quarkusのリリースはまだ存在しないため(最新の3.29.0はCamel 4.15.0を使用)、Quarkusモジュールは影響を受けるケースのみを実演します。

実演内容

このアプリは、外部から提供されたHazelcastInstanceを持たないReplicatedHazelcastAggregationRepositoryに支えられたCamelルートを実行するため、リポジトリは独自のローカルHazelcastメンバー(デフォルトクラスタdev、ポート5701)を起動します。影響を受けるビルドでは、そのメンバーにJavaSerializationFilterConfigがありません。

次に攻撃者クライアントがクラスタに参加し、シリアライズされたオブジェクトをバッキングReplicatedMapに公開します。Hazelcastのクライアントはバイトを送信するだけで、マップの値を保存もデシリアライズもしないため、発生するデシリアライゼーションはすべて被害者メンバーに起因すると特定できます。公開されるオブジェクトは意図的に無害なマーカーcom.example.PwnMarkerです。これはガジェットチェーンを持たず、コマンドも実行せず、自身のreadObjectが実行されたことだけを(JVMグローバルフラグ経由で)記録します。実際の攻撃者はここでRCEのために既知のガジェットクラスを公開するでしょうが、クラスがデシリアライズされたこと自体を証明すれば十分です。

修正のデフォルトフィルタはjava.、javax.、org.apache.camel.のクラス名プレフィックスのホワイトリストであるため、com.example.PwnMarkerは完璧なオラクルとなります:

  • 影響ありのビルド → フィルタなし → PwnMarkerがデシリアライズされ、被害者メンバー上でreadObjectが実行される → PROVEN(実証済み)。
  • 修正済みのビルド → ホワイトリストがreadObjectの前にcom.example.PwnMarkerを拒否する → java.lang.SecurityException: Resolving class com.example.PwnMarker is not allowed → 悪用されず。
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

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

=== CVE-2026-78162 — camel-hazelcast ReplicatedHazelcastAggregationRepository ===
=== missing JavaSerializationFilterConfig on the Camel-built member ===

Attacker client joined the victim cluster 'dev' at 127.0.0.1:5701.
Attacker published a com.example.PwnMarker into ReplicatedMap 'aggregation'.

Result:
>>> PROVEN: the Camel-built Hazelcast member deserialized an attacker-supplied, non-whitelisted
>>> class (com.example.PwnMarker) with no JavaSerializationFilterConfig in effect — its readObject
>>> executed inside the victim. A real attacker would publish a gadget class here instead, for RCE.
>>>   PwnMarker.readObject executed inside the victim member; tag=attacker-rce-marker; thread=hz.*.partition-operation.thread-1

脆弱性の概要

プロパティ値
コンポーネントcamel-hazelcast (camel-hazelcast-starter / camel-quarkus-hazelcast)
CWECWE-502 (信頼できないデータのデシリアライズ)
深刻度MEDIUM
攻撃ベクトル影響を受けるインスタンスが接続している Hazelcast クラスタに公開できる攻撃者。Camel が構築したメンバー/クライアントが、公開されたオブジェクトをクラス制限なしでデシリアライズする
影響Camel がエクスチェンジを処理する前に、Camel プロセス内で (ガジェットクラスを介して) リモートコード実行が発生する
影響を受けるバージョン4.0.0 から 4.18.5 未満、4.19.0 から 4.22.1 未満
修正済みバージョン4.18.5、4.22.1、4.23.0
JIRACAMEL-24413、CAMEL-24420
クレジットTCBS の cattier、Leon Zlobecki

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

修正内容

HazelcastSerializationFilterHelper.applyDefault(...) に ClientConfig のオーバーロードが追加され、これまで未対応だった 2 つの経路 — ReplicatedHazelcastAggregationRepository#doStart() と HazelcastDefaultComponent#getOrCreateHzClientInstance() — の両方で呼び出されるようになりました。これにより、Camel が 自身で構築するすべての Hazelcast 設定に、デフォルトの JavaSerializationFilterConfig (ホワイトリスト java. / javax. / org.apache.camel.、ブラックリスト java.net.) が適用されます。ユーザーが指定した Config、ClientConfig、または HazelcastInstance は引き続き変更されません。このアドバイザリは、CVE-2026-43865 に対する不完全な修正の後続です。

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

JavaSerializationFilterConfig を含む明示的な Hazelcast 設定を指定するか、事前に構築した HazelcastInstance を注入してください (ユーザーが指定した設定が Camel によって上書きされることはありません)。JVM 全体の -Djdk.serialFilter=... を設定し、Hazelcast クラスタの認証と TLS を有効にしてください。

免責事項

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

ツールをダウンロード