
CVE-2023-38831 es una vulnerabilidad de día cero en WinRAR que permite a los atacantes disfrazar archivos maliciosos en archivos comprimidos, engañando a los usuarios para que ejecuten contenido dañino.
CVE-2023-38831 es una vulnerabilidad de día cero que afecta a todas las versiones de WinRAR anteriores a 6.23.
El problema está en el procesamiento del formato ZIP, lo que podría permitir a los atacantes utilizar archivos afectados para distribuir malware. Los actores maliciosos pueden disfrazar archivos maliciosos dentro de archivos ZIP dándoles nombres similares a los legítimos, engañando a los usuarios para que ejecuten contenido dañino mientras creen que están abriendo un archivo seguro. Esta falla ha sido explotada activamente desde abril de 2023, particularmente dirigida a sectores financieros, lo que representa riesgos significativos para los usuarios que abren archivos comprimidos no confiables. Actualizar a WinRAR 6.23 o posterior mitiga esta vulnerabilidad al mejorar la sanitización de nombres de archivos durante la extracción.
En el siguiente ejemplo, descargué todos los archivos proporcionados en una sola carpeta, ejecuté el script a través de CMD, especifiqué los nombres de archivo apropiados (incluyendo el exploit), y finalmente agregué algunos archivos aleatorios al archivo .rar para que pareciera más auténtico y ocultar mejor el nuevo exploit .txt. Cuando el usuario hace clic en el supuesto archivo ".txt", se ejecutará el archivo .cmd oculto ubicado en la misma carpeta con un nombre coincidente:
https://github.com/user-attachments/assets/91eed756-bb38-42dd-a127-cabaccb4c386
Usando esta idea, podemos intentar disfrazar el archivo de la manera más efectiva posible y hacer que el exploit parezca urgente o importante para el usuario. En el siguiente ejemplo, agregué varios archivos aleatorios para que el archivo .rar pareciera más legítimo. Usé un archivo .txt básico como señuelo y lo nombré "INSTRUCTIONS - Open Before Extraction" para atraer al usuario a hacer clic en él:

Utilizando el script de Python proporcionado, puedes crear tu propio archivo RAR que usaremos para ver la lógica detrás de este exploit.
Paso 1 - Descarga los archivos exploit.py y DoS.cmd.
Paso 2 - Colócalos todos en una carpeta y elige un archivo señuelo aleatorio; para el propósito de esta POC usaré un simple archivo .jpg.
Paso 3 - Ejecuta el script e ingresa los nombres requeridos
El script funciona de la siguiente manera:
Toma los nombres y extensiones de archivo proporcionados.
Crea una carpeta temporal con el script colocado dentro de una subcarpeta y el archivo señuelo fuera de ella, ambos con nombres similares, con el nombre de la carpeta añadido con "X" y el nombre del archivo señuelo añadido con "Y":

Luego crea un archivo ZIP desde la carpeta temporal, lo abre en modo binario y modifica los caracteres "X" e "Y", reemplazándolos con espacios para hacer que parezca que son el mismo archivo.
Escribe los datos modificados en un archivo .rar.

Usando un programa como ProcessMonitor, podemos ver los pasos exactos que da WinRAR al ejecutar el archivo:

El problema surge de la ambigüedad causada por un archivo que contiene dos archivos con nombres casi idénticos: "image.jpg " (señuelo) y
"image.jpg .cmd" (script malicioso). El espacio adicional crea un nombre base similar, lo que confunde la forma en que tanto WinRAR como Windows resuelven las rutas de archivos. Al hacer clic en "image.jpg ", WinRAR lee y crea todos los archivos relacionados en la carpeta temporal debido a sus nombres base similares:

Para resolver la ambigüedad, WinRAR realiza una búsqueda con comodín (QueryDirectory) para image.jpg .*, con el objetivo de localizar un tipo de archivo ejecutable mientras se asegura de que no haya otros archivos relacionados presentes. WinRAR (y Windows) siempre priorizarán los tipos de archivo ejecutables (por ejemplo, .cmd, .exe, .bat) al resolver rutas ambiguas. Como resultado, ejecutó "image.jpg .cmd" usando cmd.exe (Create Process), permitiendo que el script malicioso se ejecute en lugar de abrir el archivo señuelo en el visor de imágenes predeterminado.
WinRAR resolvió este problema en la versión 6.23, y se recomienda encarecidamente a los usuarios que actualicen a la versión más reciente.
https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=232