3 vulnerabilidades críticas en el proyecto XEN permiten tomar el control del sistema operativo host a través de máquinas virtuales

Xen es un hipervisor que permite que múltiples sistemas operativos de computadora se ejecuten en el mismo hardware de computadora simultáneamente. La comunidad de Xen Project desarrolla y mantiene Xen Project como software gratuito y de código abierto, sujeto a los requisitos de la Licencia Pública General GNU (GPL), versión 2. Actualmente, Xen Project está disponible para IA-32, x86-64 y conjuntos de instrucciones ARM. El Proyecto Xen ha revelado tres vulnerabilidades en su hipervisor, las cuales permitirían a un actor malicioso tomar el control de un sistema operativo host a través de una VM. El proyecto Xen se centra en el avance de la virtualización en varias aplicaciones comerciales y de código abierto, incluyendo la virtualización de servidores, la infraestructura como servicio (Iaas), la virtualización de escritorios, las aplicaciones de seguridad, los dispositivos integrados y de hardware, y la automoción/aviación.

Las siguientes son tres vulnerabilidades descubiertas por el equipo de Google Project Zero.

CVE-2022-26364, CVE-2022-26363

Xen mantiene un recuento de referencias para las páginas, además de un recuento de referencias comunes. Este diseño se utiliza para mantener las variables fijas necesarias para la seguridad de Xen, por ejemplo, los invitados de PV pueden no tener acceso de escritura directa a las páginas; las actualizaciones necesitan la aprobación de Xen.

Lamentablemente, la lógica de seguridad de Xen no tiene en cuenta la falta de coherencia de caché inducida por la CPU; casos en los que la CPU puede producir que el contenido de la memoria caché sea distinto del contenido de la memoria principal. En tales casos, la lógica de seguridad de Xen puede concluir erróneamente que el contenido de una página es seguro.

IMPACTO: Los administradores invitados x86 PV maliciosos pueden escalar los privilegios para controlar el sistema operativo host.

SISTEMAS VULNERABLES: Todas las versiones de Xen son vulnerables.Solo los invitados x86 PV pueden provocar esta vulnerabilidad.

Solo los invitados x86 PV configurados con acceso a dispositivos (por ejemplo, PCI Passthrough) pueden provocar la vulnerabilidad.

Solo se ven afectadas las CPU que pueden emitir accesos de memoria no coherentes. Las CPU que enumeran la función SelfSnoop no se ven afectadas, excepto como se indica en las erratas. Por lo tanto, el equipo cree que Xen que se ejecuta en Intel IvyBridge o CPU posteriores no se ve afectado por la vulnerabilidad.

MITIGACIÓN: No pasar dispositivos a invitados x86 PV que no sean de confianza evitará la vulnerabilidad.

SOLUCIÓN: la aplicación de los parches apropiados resuelve esta vulnerabilidad.

CVE-2022-26362

Xen mantiene un recuento de referencias de tipos para las páginas, además de un recuento de referencias regular. Este diseño se utiliza para mantener las variables fijas necesarias para la seguridad de Xen, por ejemplo, los invitados de PV pueden no tener acceso de escritura directa a las páginas; las actualizaciones necesitan la aprobación de Xen.

Lamentablemente, la lógica para adquirir una referencia  tiene una condición de carrera, por lo que se emite un safe TLB flush demasiado pronto y crea una ventana en la que el invitado puede restablecer la asignación de lectura/escritura antes de que se prohíba la escritura.

IMPACTO: los administradores invitados x86 PV malintencionados pueden escalar los privilegios para controlar el sistema operativo host.

SISTEMAS VULNERABLES: Todas las versiones de Xen son vulnerables. Solo los invitados x86 PV pueden desencadenar esta vulnerabilidad.

Para explotar la vulnerabilidad, debe haber un retraso indebido en el momento equivocado en _get_page_type(). Se desconoce el grado en que un PV x86 el invitado puede controlar esta condición de carrera.

MITIGACIÓN: No ejecutar invitados x86 PV evitará la vulnerabilidad.

SOLUCIÓN: la aplicación de los parches apropiados resuelve esta vulnerabilidad.