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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-29000-Lab — ライブラリレベルの概念実証ラボで、pac4j-jwt における CVE-2026-29000 を実証し、Docker を使用して脆弱なバージョンとパッチ適用済みバージョンを比較し、偽造された JWT の受け入れと拒否を示します。 | Kitploit
ツール/GitHubGitHub/rootdirective-sec/cve-2026-29000-lab
脆弱性分析エクスプロイトウェブセキュリティ認証
GitHubrootdirective-sec/cve-2026-29000-lab

CVE-2026-29000-Lab

ライブラリレベルの概念実証ラボで、pac4j-jwt における CVE-2026-29000 を実証し、Docker を使用して脆弱なバージョンとパッチ適用済みバージョンを比較し、偽造された JWT の受け入れと拒否を示します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-29000 — pac4j-jwt ライブラリレベル PoC ラボ

TL;DR

このリポジトリには、pac4j-jwt における CVE-2026-29000 のライブラリレベル PoC が含まれています。

脆弱なバージョンと修正済みバージョンの動作を、以下の2つのケースで比較します:

  • ベースライン: 正規のトークンが受け入れられるべき
  • 攻撃: 偽造トークンが脆弱なバージョンでは受け入れられ、修正済みバージョンでは拒否されるべき
VersionBaselineAttackResult
6.0.3✅✅脆弱
6.0.4.1✅✅脆弱
6.3.3✅❌修正済み

この PoC は、脆弱なバージョンにおいて攻撃者が制御する subject とロールによる認証済みプロファイルの作成を実証し、修正済みバージョンでは偽造トークンが拒否されることを示します。


このプロジェクトの概要

これはWeb アプリケーションのデモではありません。

JwtAuthenticator を直接呼び出し、Docker 内で複数バージョンの pac4j-jwt を比較する小さな Java プログラムです。

目的は次の3点を証明することです:

  1. 正規トークンは引き続き動作する
  2. 攻撃者が制御する偽造クレームが脆弱なバージョンで受け入れられる
  3. 攻撃者が制御する偽造クレームが修正済みバージョンで拒否される

これらのバージョンを選択した理由

テスト対象のバージョンは意図的に選択されています:

  • 6.0.3 — 公開された技術レポートがこのバージョンで動作する PoC を報告しているため
  • 6.0.4.1 — 公開されたアドバイザリデータがこのバージョンを影響を受ける 6.x 範囲内に位置付けているため
  • 6.3.3 — 6.x 系の修正リリースであるため

これにより、このラボには3つの有用な参照ポイントがあります:

  • 公開 PoC の参照バージョン
  • アドバイザリで確認された影響を受けるバージョン
  • 修正済みバージョン

プロジェクト構成

root@kitploit:~
.
├── docker-compose.yml
├── Dockerfile
├── pom.xml
└── src/main/java/lab/Repro.java

ファイルの役割

  • docker-compose.yml 各バージョンのテストマトリクスを定義します。

  • Dockerfile コンテナ内で PoC をビルドおよび実行します。

  • pom.xml 依存関係を定義し、実行可能な fat JAR をビルドします。

  • src/main/java/lab/Repro.java 実際の PoC ハーネスです。


サービスの意味

docker-compose.yml ファイルは3つのサービスを定義します:

  • v603 = pac4j-jwt 6.0.3 をテスト
  • v6041 = pac4j-jwt 6.0.4.1 をテスト
  • patched = pac4j-jwt 6.3.3 をテスト

つまり、以下のコマンドは「その特定のバージョンに対して PoC を1回実行する」ことを意味します:

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

--rm は、実行終了後に一時コンテナが削除されることを意味します。


実行方法

ビルド

root@kitploit:~
docker compose build --no-cache

実行

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

PoC の動作内容

各バージョンに対して、プログラムは2つのケースを実行します。

1) ベースライン

正規のトークンを生成し、JwtAuthenticator を通じて検証します。

期待される結果:

  • テスト対象のすべてのバージョンで受け入れられる

2) 攻撃

攻撃者が制御するクレームを含む偽造トークンを生成し、JwtAuthenticator を通じて検証します。

期待される結果:

  • 脆弱なバージョン → 偽造された ID が受け入れられる
  • 修正済みバージョン → 偽造トークンが拒否される

出力の読み方

脆弱なバージョンの出力

次のような出力が表示されるはずです:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: ACCEPTED
  observed_subject: admin#override
  observed_roles: [ROLE_SUPERUSER, ROLE_ADMIN]

[summary]
  conclusion: VULNERABLE: forged token accepted

意味:

  • 通常のトークンは動作する
  • 偽造トークンも受け入れられる
  • subject とロールが攻撃者が制御する値に置き換えられている

修正済みバージョンの出力

次のような出力が表示されるはずです:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: REJECTED
  reason: CredentialsException: A non-signed JWT cannot be accepted as signature configurations have been defined

[summary]
  conclusion: PATCHED: forged token rejected

意味:

  • 通常のトークンは動作する
  • 偽造トークンは拒否される
  • 修正済みバージョンは、攻撃で使用される非署名の内部 JWT パスを もはや受け入れない

このリポジトリが汎用トークンスクリプトではなくライブラリの動作に焦点を当てる理由

この CVE はライブラリレベルの認証パスに影響を与えるものであり、単一のユニバーサルなロールモデルを持つ単一のアプリケーションに影響するものではありません。

再利用可能な部分は攻撃の形状です:

  • 攻撃者が制御する偽造クレーム
  • JWE として暗号化
  • JwtAuthenticator に渡される

実際のアプリケーション間で普遍的ではないもの:

  • クレーム名
  • ロール名
  • 認可マッピング
  • 鍵素材 / JWKS 設定
  • アプリケーション固有のプロファイル処理

そのため、このリポジトリは、任意のアプリケーションに対して自動的に機能するユニバーサルなトークンが存在するかのように装うのではなく、脆弱なバージョンでライブラリが攻撃者が制御する偽造クレームを受け入れることを証明することに焦点を当てています。


スクリーンショット

  1. docker compose run --rm v603
  2. docker compose run --rm v6041
  3. docker compose run --rm patched

脆弱なバージョン: 6.0.3

example 603 output

脆弱なバージョン: 6.0.4.1

example 6041 output

修正済みバージョン: 6.3.3

example patched output


参照

  • pac4j の JwtAuthenticator に関するセキュリティアドバイザリ
  • GitHub Advisory Database: CVE-2026-29000
  • NVD エントリ: CVE-2026-29000
  • CodeAnt 技術レポート: 公開鍵認証バイパス PoC

最終的な要点

このプロジェクトは、次の3つの核心的な事実を実証します:

  1. 正規のベースライントークンはテスト対象のすべてのバージョンで受け入れられる
  2. 攻撃者が制御する偽造クレームは 6.0.3 と 6.0.4.1 で受け入れられる
  3. 攻撃者が制御する偽造クレームは 6.3.3 で拒否される

これは、このリポジトリにおけるこの CVE の脆弱バージョン対修正済みバージョンの核心的な証拠です。

脆弱なバージョンでは、偽造トークンは単に解析されるだけでなく、攻撃者が制御する subject とロールを持つ認証済みプロファイルを生成します。

ツールをダウンロード