Vulnerabilidad en el sistema operativo Qubes que permite eludir la aislamiento y ejecutar código en Dom0

Se ha publicado información sobre una vulnerabilidad en el sistema operativo Qubes, que utiliza un hipervisor para un aislamiento estricto de aplicaciones y componentes del sistema operativo (cada clase de aplicaciones y servicios del sistema se ejecutan en máquinas virtuales separadas). Si un atacante compromete una de las máquinas virtuales, la vulnerabilidad permite eludir el aislamiento, lograr la ejecución de comandos arbitrarios en el entorno host (Dom0) y obtener control sobre todo el sistema operativo. El problema se manifiesta cuando un usuario utiliza la herramienta «qvm-copy-to-vm» para copiar un archivo del entorno host a la máquina virtual controlada por el atacante. La vulnerabilidad se ha corregido en la actualización del paquete qubes-core-dom0-linux 4.3.22.

El problema se presenta en la utilidad «qvm-copy-to-vm» y es causado por un manejo inadecuado de errores devueltos al intentar acceder a una máquina virtual. La esencia de la vulnerabilidad radica en que la utilidad qvm-copy-to-vm ejecutaba programas kdialog o zenity para mostrar información sobre el error, utilizando la función system() e incorporando datos sobre el archivo que no se pudo copiar como parte de las opciones en la línea de comandos. En este proceso, la limpieza del nombre del archivo se limitaba a eliminar caracteres no ASCII y comillas dobles sin verificar la presencia de caracteres especiales interpretados por la shell, como «`» y «$».

Después de completar la copia de archivos desde el sistema host, el manejador en la máquina virtual devuelve una confirmación de la operación que incluye, entre otras cosas, el nombre del último archivo recibido. El ataque se reduce a devolver un código de error en lugar de la confirmación, indicando para el archivo que no se pudo copiar un nombre que contiene caracteres especiales procesados por el intérprete de comandos. Tras recibir el error, el manejador en el entorno host ejecutará mediante system() la herramienta para mostrar un diálogo con el texto del error, pasando en la línea de comandos el nombre del archivo devuelto por el atacante (por ejemplo, al especificar «file`id`» en el entorno host, se ejecutará el comando id).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster