
CVE-2023-44451, CVE-2023-52076: Vulnerabilidad de RCE que afecta a distribuciones Linux populares, incluyendo Mint, Kali, Parrot, Manjaro, etc. Ejecución remota de código mediante Directory Traversal en el análisis de archivos EPUB.
Vulnerabilidad de RCE que afecta a distribuciones Linux populares, incluyendo Mint, Kali, Parrot, Manjaro, etc. Ejecución Remota de Código mediante Directory Traversal en el Análisis de Archivos EPUB
Se ha descubierto una vulnerabilidad crítica de Path Traversal y escritura arbitraria de archivos en el visor de documentos predeterminado de MATE/ y Linux Mint, que afecta a sistemas operativos populares como Kali Linux, Parrot Security OS, Ubuntu-Mate, Linux Mint, Xubuntu y todos los demás sistemas operativos que utilizan MATE o Atril/Xreader como visor de documentos predeterminado.
La vulnerabilidad existe en Atril Document Viewer y Xreader Document Viewer, que son los visores de documentos predeterminados del entorno MATE y Linux Mint, respectivamente. Atril es el lector de documentos predeterminado para Kali Linux, Ubuntu-Mate, Parrot Security OS y Xubuntu, y Xreader es el lector de documentos predeterminado para Linux Mint.
Esta vulnerabilidad es capaz de escribir archivos arbitrarios en cualquier parte del sistema de archivos a la que el usuario que abre un documento manipulado tenga acceso; la única limitación es que esta vulnerabilidad no se puede explotar para sobrescribir archivos existentes, pero eso no impide que un atacante logre la Ejecución Remota de Comandos en el sistema objetivo.
Esta vulnerabilidad no se puede explotar para sobrescribir archivos existentes, solo puede crear nuevos archivos en cualquier ubicación especificada, pero eso no nos impide lograr RCE. Probé usar la vulnerabilidad para escribir una entrada .desktop en $HOME/.config/autostart y luego cerré sesión y volví a iniciarla; la entrada .desktop maliciosa se activó y obtuve la Ejecución Remota de Comandos. También intenté colocar un archivo authorized_keys en el directorio .ssh/ y logré RCE a través de SSH. Nota: Si un directorio no está presente, creará el directorio automáticamente.
¿Quién sabe sobre el formato Ebook? ¿Acaso no todos han cambiado a PDF?
La respuesta es no, EPUB sigue siendo un formato de documento popular y potente, pero muchas personas prefieren PDF. La mayoría está familiarizada con los PDF. Así que intentaba maximizar el impacto de esta vulnerabilidad. Otra cosa interesante que noté fue que, al renombrar el documento .epub a algo.pdf, el visor de documentos vulnerable (Atril/Xreader) intenta abrir el archivo algo.pdf y lo lee como un documento EPUB porque es responsable de leer tanto EPUB como PDF; también admite muchos otros formatos de documento. En otras palabras, podemos renombrar nuestro algo.epub manipulado a algo.pdf y luego enviarlo al objetivo para lograr RCE en el objetivo.
Así que todo está bien, podríamos crear un exploit que genere un par epub/pdf para escribir entradas .desktop maliciosas en el directorio /home//.config/autostart/. Pero hay un pequeño problema: se requiere el nombre de usuario del objetivo para explotar con éxito este fallo. ¿Qué pasa si no conocemos el nombre de usuario? ¿No hay RCE fácil? ¿Podrías adivinar el nombre de usuario? ¿Necesitas probar nombres de usuario comunes al azar? Veamos qué encontré...
Tras un análisis más profundo, descubrí que podemos usar /proc/self/cwd para acceder al directorio home del usuario si descarga el documento manipulado y lo abre en algún lugar dentro de su directorio home, como los directorios ~/Downloads/ o ~/Documents/. Así que podemos explotar el fallo de path traversal para lograr RCE simplemente usando el gadget ../../../../../proc/self/cwd/../.config/autostart/exploit.desktop.
He creado un exploit totalmente funcional para esta vulnerabilidad (exploit_rce.sh) y un script para escribir e incluir archivos personalizados para path traversal (exploit_file_write.sh).
NOTA: En Atril de MATE, la vulnerabilidad no está corregida; los desarrolladores están parcheando la vulnerabilidad. Así que agregué un script de detección (detect.sh) para detectar documentos EPUB maliciosos y sanitizarlos antes de abrirlos.
