CVE-2026-82329: actividad de explotación de la vulnerabilidad que permite eludir la autenticación en JFrog Artifactory
Los ataques dirigidos a JFrog Artifactory (CVE-2026-82329) se dispararon en 72 horas. La inteligencia de amenazas de Fastly analiza el aumento de los escaneos masivos y explica cómo te protege hoy nuestro parche virtual.

CVE-2026-82329 es una vulnerabilidad crítica (CVSS 9,8) de JFrog Artifactory autoalojado que permite eludir la autenticación y generar, sin necesidad de autenticarse, un token de acceso de administrador con plenos privilegios en la plataforma. Un atacante anónimo puede hacerlo con una sola petición HTTP. Desde que JFrog divulgó la vulnerabilidad el 28 de agosto de 2026, el equipo de investigación de amenazas de Fastly ha observado que el tráfico asociado a esta Vulnerabilidad y exposición comunes en nuestra plataforma global ha pasado de unos sondeos iniciales de baja intensidad a un escaneo masivo oportunista.
Para ayudar a mitigar los intentos de aprovechar esta vulnerabilidad, el WAF de última generación de Fastly ha lanzado un parche virtual para CVE-2026-82329 que permite a los clientes proteger sus instancias de inmediato. Para conocer los pasos de corrección y los detalles de los parches del proveedor, consulta la sección Recomendaciones prácticas al final de este artículo. Recomendamos encarecidamente a todos los clientes que apliquen parches a sus sistemas de inmediato para corregir esta vulnerabilidad crítica.
Contexto
JFrog Artifactory es uno de los repositorios empresariales de archivos binarios y paquetes más desplegados, y almacena los artefactos creados de una gran parte de las organizaciones que producen software. Eso lo convierte en un objetivo de gran valor. Un atacante que obtiene control de administrador sobre un registro de artefactos accede directamente a la cadena de suministro de software, lo que le permite acceder a las credenciales almacenadas, crear usuarios y repositorios y manipular los artefactos publicados.
La vulnerabilidad
La vulnerabilidad CVE-2026-82329 (CWE-287, autenticación incorrecta) se encuentra en el servicio JFrog Access, situado delante de Artifactory. Cuando Access crea el conjunto de "claves de unión" de confianza del clúster con las que está dispuesto a verificar firmas, divide una cadena de configuración por las comas sin filtrar las entradas vacías. En una instalación predeterminada, ese valor de configuración está vacío, por lo que se añade una cadena vacía como clave de unión de confianza.
La clave vacía es crucial porque su secreto de firma es completamente determinista: es un valor fijo de 32 bytes derivado de una entrada vacía. Por tanto, cualquier atacante puede falsificar un JWT "join" válido con HS256 firmado con ese secreto conocido. El token falsificado contiene un identificador de clave (kid) igual al hash SHA-256 de la cadena vacía:
kid = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 // SHA256("")Al presentar ese token al punto de conexión de incorporación al clúster, que no requiere autenticación, se genera un token de acceso de administrador limitado al servicio, que después se intercambia por un token de administrador de la plataforma con plenos privilegios y sin caducidad. Toda la cadena comienza con una sola petición:
POST /access/api/v1/registry/join HTTP/1.1
Host: artifactory.example
Content-Type: application/json
{"token":"<forged HS256 JWT, kid = SHA256(\"\")>", ...}Un nodo par legítimo del clúster utiliza el mismo método y la misma ruta, pero firma con una clave de unión real (no vacía), por lo que su kid es un hash diferente. Ese único elemento diferenciador, el kid correspondiente a la cadena vacía, es lo que distingue un ataque del tráfico normal entre nodos.
Un intento de aprovechar la vulnerabilidad que tiene éxito se distingue del tráfico legítimo entre nodos. Aunque el punto de conexión de unión sin autenticación devuelve un HTTP 201 en ambos casos, el ataque depende de un token falsificado que utiliza un identificador de clave específico y determinista (el hash SHA-256 de una cadena vacía). Por tanto, observar una respuesta HTTP 201 asociada a este identificador de clave específico constituye una prueba de compromiso con un alto grado de certeza.
Actividad de las amenazas
Tras la divulgación pública de la vulnerabilidad por parte de JFrog, los intentos de aprovecharla siguieron un patrón habitual de uso con fines ofensivos y aumentaron bruscamente en cuanto se publicó un exploit. No se detectó actividad dirigida a aprovechar la vulnerabilidad el día de la divulgación (28 de agosto), y el volumen total se mantuvo en niveles mínimos durante las 48 horas siguientes: solo se registró un número de sondeos de un dígito entre el 29 y el 30 de agosto. La primera actividad destacable apareció el 31 de agosto, con aproximadamente 75 000 intentos, aunque la mayor parte de ese volumen correspondió a servicios de seguridad ofensiva. La escalada se intensificó considerablemente el 1 de septiembre tras el lanzamiento de un exploit, lo que elevó los intentos a poco más de 171 000. La actividad alcanzó su punto máximo el 2 de septiembre, con unos 406 000 intentos. Ese día se registró la mayor concentración de países de origen distintos y de direcciones IP atacantes de todo el periodo observado.

Más allá de la evolución del volumen, destacan dos aspectos.
En primer lugar, la amplitud de los objetivos: el 1 y el 2 de septiembre, distintas IP realizaron peticiones indiscriminadas a miles de hosts diferentes cada una, en una actividad de escaneo y no de ataques dirigidos.
En segundo lugar, los orígenes de los ataques aumentaron rápidamente: pasaron de unas pocas direcciones IP iniciales a casi 1400 en un solo día. El tráfico se extendió rápidamente una vez que la PoC se hizo pública y las herramientas estuvieron al alcance de cualquiera.
El panorama de los actores de amenazas
El análisis del tráfico de explotación observado en nuestra plataforma global del 28 de agosto al 2 de septiembre de 2026 revela tres categorías principales: las pruebas iniciales de seguridad ofensiva y, después, dos niveles operativos distintos de los actores de amenazas: el escaneo masivo y los intentos de explotación dirigidos.
Actividad inicial: investigación de seguridad ofensiva y pruebas
El tráfico inicial registrado el 31 de agosto podría confundirse fácilmente con el comienzo de una explotación maliciosa masiva. Sin embargo, los proveedores de seguridad ofensiva y los servicios de investigación representaron casi el 98 % del volumen de ese día (unas 73 000 de un total aproximado de 75 000 peticiones), procedente de la mayoría de las IP de origen. Para el 1 de septiembre, la actividad de investigación y de los proveedores había descendido a niveles insignificantes, mientras que la explotación real se había convertido en la principal causa del tráfico.
Nivel 1: escaneo masivo de gran volumen
Los escaneos amplios y automatizados constituyen la inmensa mayoría del tráfico de ataque. Entre las 16:40 y las 19:48 UTC del 1 de septiembre, aproximadamente, un conjunto coordinado de instancias VPS alquiladas en redes de alojamiento de Francia y Estados Unidos dirigió una intensa actividad contra el punto de conexión join. Durante este intervalo de aproximadamente tres horas, cada host de origen sondeó miles de sistemas diferentes utilizando la cadena User-Agent JFrogArtifactory/7.146.25 (correspondiente a un crear conocido vulnerable). Esta actividad se intensificó el 2 de septiembre, cuando observamos que un único proveedor de VPS generó la mayoría de los intentos totales del día durante un repunte prolongado por la tarde-noche, dirigido a miles de objetivos sin filtrar previamente cuáles tenían despliegues activos de Artifactory.
Nivel 2: explotación dirigida
A diferencia de quienes lanzaban intentos masivos, un grupo más reducido de actores llevó a cabo intentos dirigidos de aprovechar la vulnerabilidad. Varias de estas fuentes utilizaron el User-Agent predeterminado de la prueba de concepto pública del aprovechar: jfrt/0/7.161.19. Aunque estos actores especializados generaron volúmenes de peticiones considerablemente menores, su actividad reflejaba un conocimiento preciso de la vulnerabilidad subyacente.
Recomendaciones prácticas
Aplica el parche ahora. Actualiza la instalación de Artifactory alojada en tu infraestructura a una de las siguientes crear corregidas: 7.111.21, 7.117.28, 7.125.20, 7.133.29, 7.146.38 o 7.161.20 (la que corresponda a tu rama).
Si estuviste expuesto, da por hecho que tu sistema se ha visto comprometido. La aplicación de un parche no revoca los tokens ya emitidos. Cambia la clave de unión de la plataforma, revoca los tokens de acceso emitidos desde el 28 de agosto de 2026 y comprueba si hay usuarios administradores, repositorios o cambios de configuración inesperados.
Aplica un parche virtual. Los clientes del WAF de última generación de Fastly deberían habilitar la regla predefinida para CVE-2026-82329.
Busca indicios en los registros. Busca cualquier petición al punto de conexión join y considera que una respuesta HTTP 201 confirma que el sistema se ha visto comprometido. Los User-Agents de los atacantes incluidos en la lista de indicadores de compromiso (indicadores de compromiso) sirven como primer filtro sencillo, pero no te bases únicamente en ellos: son muy fáciles de cambiar.
Conclusiones
CVE-2026-82329 es un caso práctico conciso de la rapidez con la que avanza el proceso actual de explotación de vulnerabilidades. Una vulnerabilidad crítica que no requería autenticación en un producto central para la cadena de suministro pasó de su divulgación a ser objeto de escaneos a escalar de Internet en unas 72 horas, y a un compromiso confirmado en cuanto apareció una POC pública. Las medidas defensivas que se desprenden de este caso no son llamativas, pero sí eficaces: aplica los parches rápidamente, considera que un sistema expuesto está comprometido hasta que se demuestre lo contrario y despliega un parche virtual para ganar tiempo. Fastly seguirá supervisando la actividad relacionada con esta Vulnerabilidad y exposición comunes.
Indicadores de compromiso (IOC)
Variantes de los puntos de conexión:
POST /access/api/v1/registry/join
POST /access/api/v1/registry/join/enrutador
POST /access/api/v1/registry/join/enrutador?anular=true
Indicador de la carga útil: JWT kid = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Indicador de éxito: respuesta HTTP 201 de esos puntos de conexión
User-Agents:
jfrt/0/7.161.19
JFrog-Access/7.141.17
JFrogArtifactory/7.146.25
Direcciones IP de origen con un alto volumen de tráfico (muestra):
213.136.72[.]87, 89.117.49[.]147, 45.33.75[.]219, 23.92.20[.]11, 173.255.226[.]148, 195.154.157[.]234, 62.210.87[.]212, 45.79.190[.]169, 163.172.132[.]245
Referencias
Aviso oficial de JFrog: Avisos de seguridad de JFrog
Documentación del parche virtual de Fastly: Parche virtual para CVE-2026-82329
Plantilla de detección de Nuclei: Plantilla de Nuclei para CVE-2026-82329
Publicaciones de investigación de seguridad de Fastly: Investigación de seguridad de Fastly







