Envío de registros, alertas y datos de telemetría a través de un diodo de datos

Descubre cómo
Utilizamos inteligencia artificial para traducir el sitio web y, aunque nos esforzamos por garantizar la precisión, es posible que las traducciones no sean siempre 100 % exactas. Agradecemos tu comprensión.

Análisis técnico de CVE-2025-8088: Escritura arbitraria de archivos en WinRAR a través de ADS

By OPSWAT
Comparte esta publicación

CVE-2025-8088 es una vulnerabilidad de recorrido de ruta en WinRAR que afecta a las versiones anteriores a la 7.13. La explotación de esta vulnerabilidad permite que un archivo especialmente manipulado eluda la validación del nombre de archivo y la ruta durante la extracción del archivo, y provoque que se escriba contenido controlado por el atacante en ubicaciones específicas de un volumen NTFS. En determinadas condiciones, esta capacidad de escritura puede aprovecharse para la ejecución remota de código.

Los becarios del Programa de Becas OPSWAT han llevado a cabo un análisis técnico de CVE-2025-8088. Las conclusiones de este análisis de los mecanismos de RAR5 y NTFS (ADS) describen el flujo de trabajo de extracción y la ruta de gestión de ADS que dan lugar a escrituras inseguras, y resumen una serie de recomendaciones prácticas de mitigación y corrección dirigidas a los profesionales de la ciberseguridad y a las organizaciones.

Introducción a CVE-2025-8088

WinRAR es una de las utilidades de compresión más utilizadas en Windows. Permite conservar y restaurar metadatos específicos del sistema de archivos NTFS, como los ADS (flujos de datos alternativos). La vulnerabilidad CVE-2025-8088 está presente en la lógica de gestión de ADS de determinadas versiones de WinRAR. En las versiones vulnerables, un archivo malicioso puede alterar el identificador de flujo utilizado durante la extracción; además, la normalización y validación inadecuadas de las rutas en el proceso de creación de ADS permiten el acceso a directorios no autorizados.

La vulnerabilidad CVE-2025-8088 se considera un problema de alta gravedad, con una puntuación base CVSS v4.0 de 8,4 (Alta), lo que refleja el potencial de un impacto de seguridad apreciable si un usuario extrae un archivo comprimido especialmente diseñado utilizando una versión vulnerable de WinRAR.

Antecedentes técnicos

Flujos de datos alternativos de NTFS

NTFS (New Technology File System) es el sistema de archivos predeterminado en las versiones modernas de Windows. En comparación con los sistemas de archivos basados en FAT, NTFS admite funciones avanzadas como las listas de control de acceso (ACL), el cifrado EFS, la compresión, los enlaces físicos, los puntos de reanálisis (uniones y enlaces simbólicos) y los ADS. 

ADS es una función de NTFS que permite que un único archivo o directorio contenga varios flujos de datos independientes. El contenido principal, visible para el usuario, se almacena en el flujo predeterminado sin nombre, que suele representarse como ::$DATA, mientras que se puede acceder a los flujos adicionales con nombre utilizando la sintaxis: 

nombre_archivo.ext:nombre_flujo 

Estos flujos con nombre no suelen aparecer en las vistas estándar del Explorador de Windows, pero el sistema de archivos los admite plenamente y se pueden enumerar utilizando las herramientas compatibles. Por ejemplo,el comando «dir/R» permite mostrar los flujos alternativos. 

WinRAR permite extraer elementos de un archivo que incluyan sintaxis ADS. Cuando existen tales elementos en un archivo, WinRAR escribe el contenido correspondiente en la secuencia alternativa del archivo de destino durante la extracción. 

Comprender la estructura de los archivos RAR5

Los archivos RAR5 se almacenan como una secuencia de bloques. Cada bloque comienza con un encabezado que define el tipo de bloque y la información sobre su tamaño. Opcionalmente, puede incluir un área adicional de metadatos y un área de datos compuesta por bytes de carga útil, como el contenido comprimido.

Bloque = Encabezado + (Área adicional opcional) + (Área de datos opcional)

RAR5 utiliza varios tipos de bloques. Los tipos de bloques relevantes en el CVE son:

  • Encabezado de archivo (tipo 2): describe una entrada de archivo en el archivo comprimido (nombre/ruta, atributos, marcas de tiempo, parámetros de compresión) y va seguido de los datos del contenido del archivo
  • Encabezado de servicio (tipo 3): encabezados complementarios opcionales que almacenan metadatos adicionales asociados al archivo o a una entrada de archivo concreta, como ADS

En el sistema de archivos NTFS, los ADS se representan mediante un encabezado de servicio (tipo 3), denominado STM. El área de datos del encabezado de servicio contiene los bytes del flujo ADS correspondientes a la entrada del archivo base.

En pocas palabras:

Figura 1. ADS en el sistema de archivos NTFS

Análisis técnico (CVE-2025-8088)

Flujo de trabajo para la extracción de archivos RAR5

WinRAR procesa los archivos RAR5 como una secuencia de bloques. Durante la extracción, recorre estos bloques, analiza la cabecera de cada uno de ellos y comprueba la integridad de la cabecera utilizando el CRC32 integrado antes de continuar. Una vez procesada una entrada de archivo, WinRAR descomprime y escribe el contenido del archivo base en el disco, y a continuación determina si es necesario aplicar metadatos adicionales relacionados con NTFS a través de los registros de servicio asociados. Cuando hay un registro ADS (Alternate Data Stream), como una entrada de servicio STM, WinRAR entra en la ruta de gestión de ADS, combina la ruta del archivo base con el nombre del flujo para formar el destino ADS y crea el flujo. 

Figura 2. Flujo de extracción de alto nivel reconstruido durante el análisis, incluida la rama de gestión de ADS.

En CVE-2025-8088, la causa principal es que la creación de flujos ADS invoca la API de Windows utilizando una ruta derivada de metadatos controlados por el archivo, lo que hace que la construcción y validación de la ruta ADS sea insuficiente para impedir el recorrido.

Identificación de la ruta del código ADS («STM»)

Nuestros becarios de posgrado llevaron a cabo una combinación de análisis estáticos y dinámicos en un entorno de laboratorio controlado utilizando WinRAR 7.12. Localizaron la lógica relacionada con ADS buscando el marcador de servicio «STM» en el archivo binario y, a continuación, confirmaron la ruta del código de extracción en tiempo de ejecución.

Figura 3. Dos ubicaciones del código que hacen referencia a la cadena «STM», utilizada para identificar el procesamiento relacionado con ADS.

Al colocar un punto de interrupción en la referencia «STM» que aparece durante la extracción de un archivo que contiene datos ADS, el punto de interrupción se activó sistemáticamente, lo que confirmó que esta ruta de ejecución se activa durante el flujo de trabajo normal de extracción.

Figura 4. Análisis dinámico: punto de interrupción alcanzado en la ruta de procesamiento de ADS.

Al llegar al punto de interrupción, se utilizó la pila de llamadas del depurador para reconstruir la secuencia de funciones invocadas tras la acción «Extraer» en la interfaz de usuario de WinRAR, lo que permitió establecer un punto de referencia claro para el procesamiento posterior de bloques y la ruta de ejecución de ADS.

Figura 5. Secuencia de llamadas recuperada tras ejecutar la extracción con WinRAR, utilizada para identificar la ruta del código ADS.

Análisis de encabezados y validación CRC32

WinRAR procesa cada bloque RAR5 leyendo el encabezado del bloque, validando los campos de integridad y derivándolo a un controlador específico para ese tipo de bloque. El punto de entrada del procesamiento de bloques y la lógica de análisis del encabezado asociada se muestran en las figuras 6-10, donde WinRAR establece el puntero de archivo en la posición del bloque actual, lee los bytes iniciales del encabezado —que incluyen el tipo y el tamaño del mismo— y valida la integridad del encabezado mediante CRC32 antes de continuar.

Una vez validado correctamente, analiza los campos adicionales del encabezado, como los indicadores, el tamaño descomprimido, el método de compresión y las sumas de comprobación opcionales. A continuación, procesa el cuerpo del bloque.

Figura 6. Punto de entrada para el procesamiento por bloques durante la extracción.
Figura 7. Configuración del puntero del archivo y inicio del análisis de la cabecera.
Figura 8. Análisis de los bytes iniciales del encabezado y validación del CRC32 del encabezado.

Durante el proceso de ingeniería inversa, se observó que la rutina CRC32 se comportaba de forma coherente con una implementación estándar de CRC32 al estilo de zlib. En la práctica, esta comprobación CRC32 actúa como un filtro de integridad. Si se modifican los campos de la cabecera, es necesario actualizar el CRC32 integrado para garantizar que WinRAR acepte la cabecera y continúe con el procesamiento.

Figura 9. Detalles de la implementación de CRC32 (basada en tablas) utilizada durante la comprobación de integridad.

Tras validar el encabezado CRC32, el analizador continúa extrayendo el resto de la información del encabezado, como el tamaño descomprimido, el método de compresión y otros atributos.

Figura 10. Análisis de campos de encabezado adicionales (tamaños, indicadores, método de compresión y sumas de comprobación opcionales).

Una vez completados el análisis y la validación de la cabecera, WinRAR procesa el cuerpo del bloque en función del tipo de cabecera analizada y de los indicadores.

Figura 11. Bucle que descomprime y escribe el contenido del archivo durante la extracción.

En CVE-2025-8088, la validación de la integridad del encabezado se aplica antes de que WinRAR pase el control al controlador del bloque de servicio que procesa los registros ADS.

Creación de anuncios mediante el bloque de servicios («STM»)

La ruta de procesamiento ADS se activa cuando WinRAR encuentra un bloque de servicio. Los bloques de servicio utilizan el valor de tipo de bloque 3. Cuando se detecta un bloque de servicio, WinRAR lo envía a un controlador de encabezados de servicio.

Figura 12. Bloques del servicio de despacho (tipo 3), que pueden transportar registros ADS.

Dentro del controlador de servicios, WinRAR comprueba el nombre del servicio. Cuando el nombre del servicio coincide con «STM», el registro se trata como una carga útil ADS y la implementación pasa a una rutina de creación de ADS.

Figura 13. Envío del registro de servicio: cuando el nombre del servicio coincide con «STM», WinRAR inicia la creación del ADS.

A continuación, WinRAR extrae el nombre del flujo del registro de servicio y lo combina con la ruta base del archivo para construir el destino ADS definitivo. En las versiones anteriores a la 7.13, el análisis revela que el nombre del flujo no se depura lo suficiente, lo que permite que las secuencias de traversal influyan en la resolución de la ruta de destino resultante.

Figura 14. Obtención del nombre del flujo ADS a partir del registro del servicio.
Figura 15. Combinación de la ruta base y el nombre del flujo para formar una ruta ADS.

Tras crear el objetivo, WinRAR genera el flujo mediante una rutina auxiliar que invoca la API CreateFileW de Windows y, a continuación, escribe los bytes del ADS mediante WriteFile. Si la ruta resultante se encuentra fuera del directorio de extracción seleccionado por el usuario, WinRAR creará el flujo o archivo de destino y lo rellenará con contenido controlado por el atacante.

Figura 16. Lugar de llamada que inicia la creación de ADS durante la extracción.
Figura 17. Asistente de creación de ADS que delega en la rutina de creación de archivos.
Figura 18. La función API de Windows se invoca con la ruta construida para crear el flujo ADS.
Figura 19. Escritura de contenido ADS controlado por el atacante en el flujo recién creado mediante WriteFile.

En resumen, el flujo de trabajo de extracción de ADS presenta dos vulnerabilidades de seguridad. En primer lugar, el nombre del flujo ADS no se depura lo suficiente, lo que permite que las secuencias de traversal influyan en la ruta de destino resultante. En segundo lugar, WinRAR crea el flujo ADS llamando a la función CreateFileW() con una ruta derivada de los metadatos controlados por el archivo.

En conjunto, estas condiciones permiten que un archivo manipulado desvíe el destino de la función CreateFileW() fuera del directorio de extracción previsto y escriba contenido controlado por el atacante en una ubicación manipulada por este. Si el destino es un directorio relevante para la persistencia (por ejemplo, la carpeta «Inicio» del usuario), esta operación de escritura puede permitir la ejecución de código posterior en el siguiente inicio de sesión o reinicio, dependiendo del tipo de carga útil y de la configuración del sistema.

Escenario de ataque

La vulnerabilidad CVE-2025-8088 puede explotarse en la práctica en situaciones en las que un atacante induce a un usuario a extraer un archivo RAR manipulado utilizando una versión vulnerable de WinRAR. Un vector de ataque típico es la ingeniería social, como el phishing, que lleva a la víctima a confiar en un archivo malicioso e iniciar su extracción en un sistema crítico.

El archivo incorpora un registro de servicio ADS («STM»). El nombre de su flujo está diseñado para introducir una semántica de recorrido. Durante la extracción en NTFS, WinRAR procesa el registro ADS y deduce la ruta del flujo de destino a partir de los metadatos controlados por el archivo. Dado que esta construcción de la ruta ADS no está lo suficientemente restringida, el destino resultante puede quedar fuera del directorio de extracción seleccionado por el usuario, incluyendo ubicaciones críticas como la carpeta de inicio del usuario.

Figura 20. Flujo del ataque de principio a fin: entrega, extracción en un WinRAR vulnerable y persistencia a través de la carpeta de inicio.

Prueba de concepto

Para demostrar la vulnerabilidad CVE-2025-8088, nuestros becarios de posgrado prepararon un archivo RAR manipulado que contenía un registro de servicio ADS («STM») con campos controlados por el atacante. Este archivo está estructurado con un nombre de flujo ADS que incluye secuencias de recorrido. Esta estructura influye en la ubicación final del destino durante el manejo de ADS, incluida la ruta pasada a CreateFileW() cuando se crea el flujo. Para garantizar que WinRAR acepte los metadatos modificados y llegue a la ruta de procesamiento de ADS, se vuelven a calcular los valores CRC32 del encabezado pertinentes para que el archivo supere la validación de integridad del encabezado. 

Figura 21. Ejemplo de campos controlados por el atacante dentro de un archivo manipulado utilizado para dirigir la ruta ADS.

Cuando una versión vulnerable de WinRAR entra en la rutina de procesamiento ADS durante la extracción del archivo manipulado, escribe el contenido controlado por el atacante en el destino preseleccionado, en lugar de en el directorio de extracción seleccionado por el usuario. Tras la extracción, la ejecución de la carga útil viene determinada por su formato y por la semántica de ejecución del destino preseleccionado. Por ejemplo, ubicaciones que pueden ejecutar contenido en el siguiente inicio de sesión o reinicio.

Figura 22. Demostración de viabilidad: una carga útil introducida en Startup a través de la ruta de extracción vulnerable.

Remediación

El riesgo asociado a CVE-2025-8088 puede mitigarse actualizando WinRAR a una versión parcheada (7.13 o posterior) en todos los dispositivos gestionados. Si no es posible realizar la actualización a tiempo, deben considerarse medidas compensatorias, tales como:

  • Limitar o desactivar la conservación de ADS en las herramientas de archivo cuando no sea necesario
  • Limitar la extracción de archivos comprimidos no fiables a entornos aislados
  • Aplicar el principio del mínimo privilegio (evitar ejecutar herramientas de extracción con privilegios elevados)
  • Supervisar los directorios críticos, como las carpetas de inicio, para detectar escrituras inesperadas procedentes de los procesos de extracción de archivos

Para vulnerability detection temprana vulnerability detection avanzada vulnerability detection una corrección rápida, MetaDefender facilita las operaciones de corrección urgentes al identificar los dispositivos que ejecutan versiones vulnerables de WinRAR y señalar las actualizaciones necesarias. Sus sólidas capacidades de gestión de vulnerabilidades y parches, compatibles con más de 1100 aplicaciones, identifican de forma proactiva los terminales que ejecutan sistemas operativos y aplicaciones de terceros sin parches o desactualizados, y proporcionan las soluciones recomendadas.

Vulnerability Management permite a los administradores detectar rápidamente los riesgos, priorizar las medidas correctivas e impulsar las actualizaciones a una versión parcheada, lo que reduce el riesgo de ataques de escritura de archivos basados en archivos comprimidos, como el CVE-2025-8088, y amenazas similares dirigidas a los terminales.

Figura 23. MetaDefender Endpoint una versión vulnerable de WinRAR y recomienda actualizarla a una versión corregida.

¡Mantente al día con OPSWAT!

Regístrate hoy mismo para recibir las últimas novedades de la empresa, historias, información sobre eventos y mucho más.