Vulnerabilidad en OverlayFS que permite elevar privilegios

Se ha detectado una vulnerabilidad en el núcleo de Linux en la implementación del sistema de archivos OverlayFS (CVE-2023-0386), que puede ser utilizada para obtener acceso root en sistemas donde está instalada la subestructura FUSE y se permite el montaje de particiones OverlayFS por un usuario no privilegiado (desde el núcleo de Linux 5.11 con el uso de espacios de nombres de usuario no privilegiados). El problema se ha solucionado en la rama del núcleo 6.2. Las publicaciones de actualizaciones de paquetes en las distribuciones se pueden seguir en las páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

El ataque se realiza mediante la copia de archivos con los flag setgid/setuid desde una partición montada en modo nosuid a una partición OverlayFS, que tiene una capa relacionada con una partición que permite la ejecución de archivos suid. La vulnerabilidad es similar al problema CVE-2021-3847, identificada en 2021, pero presenta menores requisitos de explotación: en el antiguo problema se requerían manipulaciones de xattrs, que están restringidas al utilizar espacios de nombres de identificador de usuario (user namespace), mientras que en el nuevo problema se utilizan los bits setgid/setuid, que no se procesan de forma específica en el user namespace.

El algoritmo para llevar a cabo el ataque:

  • Se monta un sistema de archivos con la subestructura FUSE, que contiene un archivo ejecutable perteneciente al usuario root con flags setuid/setgid, accesible a todos los usuarios para escritura. Al montar FUSE, se establece el modo "nosuid".
  • Se cancelan (unshare) los espacios de nombres de usuarios y puntos de montaje (user/mount namespace).
  • Se monta OverlayFS especificando el sistema de archivos creado anteriormente en FUSE como la capa inferior y la capa superior basada en un directorio que permite la escritura. El directorio de la capa superior debe estar ubicado en un sistema de archivos donde no se utilice el flag "nosuid" al montarlo.
  • Se cambia el tiempo de modificación para el archivo suid en la partición FUSE utilizando la utilidad touch, lo que resulta en su copia en la capa superior de OverlayFS.
  • Al copiar, el núcleo no elimina los flags setgid/setuid, lo que provoca que el archivo aparezca en una partición que permite el procesamiento de setgid/setuid.
  • Para obtener derechos de root, basta con ejecutar el archivo con flags setgid/setuid desde el directorio vinculado a la capa superior de OverlayFS.

Además, se puede mencionar que los investigadores del equipo de Google Project Zero han revelado información sobre tres vulnerabilidades que fueron corregidas en la rama principal del núcleo Linux 5.15, pero que no fueron trasladadas a los paquetes del núcleo de RHEL 8.x/9.x y CentOS Stream 9.

  • CVE-2023-1252 — acceso a un área de memoria ya liberada en la estructura ovl_aio_req durante la realización simultánea de múltiples operaciones en OverlayFS, desplegado sobre el sistema de archivos Ext4. Esta vulnerabilidad puede potencialmente permitir la elevación de privilegios en el sistema.
  • CVE-2023-0590 — acceso a un área de memoria ya liberada en la función qdisc_graft(). Se supone que la explotación se limita a un fallo de sistema.
  • CVE-2023-1249 — acceso a un área de memoria ya liberada en el código de escritura de coredump, que se produce debido a una llamada mmap_lock omitida en file_files_note. Se supone que la explotación se limita a un fallo de sistema.

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