
Rustベースのエクスプロイトジェネレーター。CVE-2026-29000、pac4j-jwtにおけるJWEにネストされたalg:none JWTを介した認証バイパスを対象とし、認可されたテスト用にJWKSの取得とトークン偽造を自動化します。
このリポジトリには、pac4j-jwt の認証バイパス脆弱性である CVE-2026-29000 を悪用するための専用 Rust 実装が含まれています。この脆弱性は、暗号化された JWE コンテナ内に PlainJWT(alg: none)がネストされている場合に発生する「署名検証スキップ」に起因します。
自動 JWKS 取得: /api/auth/jwks エンドポイントからターゲットの公開 RSA 鍵を直接取得します。
非保護 JWS の構築: 管理者権限(ROLE_ADMIN)を含む None アルゴリズムの JWT を作成します。
JWE ラッパー: RSA-OAEP-256 と A128GCM を使用して悪意のある内部トークンをカプセル化し、初期の境界フィルターをバイパスします。
非同期実行: tokio と reqwest による効率的なネットワーク処理を実現します。
Rust/Cargo がインストールされていること。
ターゲットへのネットワークアクセス(デフォルト: http://principal.htb:8080)。
インストール リポジトリをクローンします:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
エクスプロイトジェネレーターを実行して、偽造された JWE を出力します:
cargo run
このエクスプロイトは、ライブラリが外部の JWE を復号するものの、ヘッダーが alg: none を指定している場合に内部の JWS の署名を再帰的に検証しないというロジック上の欠陥を標的にしています。
内部レイヤー: 管理者サブジェクトを含む alg: None の JWT。
外部レイヤー: 内部 JWT はサーバー自身の公開鍵を使用して暗号化されます。
結果: サーバーはトークンを復号し、正しく暗号化されていることを確認して、署名をチェックせずに内部ペイロードを信頼します。
このツールは教育目的および許可されたセキュリティテスト(CTF/ラボ環境)専用です。コンピューターシステムへの不正アクセスは違法です。