Vulnerabilidad en OverlayFS que permite la escalada de privilegios

Se identificó una vulnerabilidad en el kernel de Linux en la implementación del sistema de archivos OverlayFS (CVE-2023-0386), que puede usarse para obtener acceso de root en sistemas que tienen instalado el subsistema FUSE y permitir el montaje de particiones OverlayFS por parte de un usuario sin privilegios. usuario (a partir del kernel de Linux 5.11 con la inclusión de un espacio de nombres de usuario sin privilegios). El problema se solucionó en la rama del kernel 6.2. La publicación de actualizaciones de paquetes en distribuciones se puede rastrear en las páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

El ataque se realiza copiando archivos con banderas setgid/setuid desde una partición montada en modo nosuid a una partición OverlayFS que tiene una capa asociada con la partición que permite la ejecución de archivos suid. La vulnerabilidad es similar al problema CVE-2021-3847 identificado en 2021, pero difiere en requisitos de explotación más bajos: el problema anterior requería manipulación con xattrs, que se limitan al uso de espacios de nombres de usuario (espacio de nombres de usuario), y el nuevo problema usa bits setgid /setuid que no se manejan específicamente en el espacio de nombres de usuario.

Algoritmo de ataque:

  • Con la ayuda del subsistema FUSE, se monta un sistema de archivos, en el que hay un archivo ejecutable propiedad del usuario raíz con los indicadores setuid / setgid, disponible para que todos los usuarios lo escriban. Al montar, FUSE establece el modo en "nosuid".
  • Dejar de compartir espacios de nombres de usuario y puntos de montaje (espacio de nombres de usuario/montaje).
  • OverlayFS se monta con el FS creado previamente en FUSE como la capa inferior y la capa superior en función del directorio de escritura. El directorio de la capa superior debe estar ubicado en un sistema de archivos que no use el indicador "nosuid" cuando se monte.
  • Para un archivo suid en la partición FUSE, la utilidad táctil cambia el tiempo de modificación, lo que lleva a su copia a la capa superior de OverlayFS.
  • Al copiar, el kernel no elimina los indicadores de setgid/setuid, lo que hace que el archivo aparezca en una partición que puede ser procesada por setgid/setuid.
  • Para obtener derechos de root, basta con ejecutar el archivo con las banderas setgid/setuid desde el directorio adjunto a la capa superior de OverlayFS.

Además, podemos señalar la divulgación de información por parte de los investigadores del equipo de Google Project Zero sobre tres vulnerabilidades que se repararon en la rama principal del kernel de Linux 5.15, pero que no se transfirieron a los paquetes del kernel de RHEL 8.x/9.x y Corriente de CentOS 9.

  • CVE-2023-1252: Acceso a un área de memoria ya liberada en la estructura ovl_aio_req mientras se realizan varias operaciones al mismo tiempo en OverlayFS implementado sobre el sistema de archivos Ext4. Potencialmente, la vulnerabilidad le permite aumentar sus privilegios en el sistema.
  • CVE-2023-0590: Hace referencia a un área de memoria ya liberada en la función qdisc_graft(). Se supone que la operación está limitada a abortar.
  • CVE-2023-1249: acceso a un área de memoria ya liberada en el código de entrada de volcado debido a la falta de la llamada mmap_lock en file_files_note. Se supone que la operación está limitada a abortar.

Fuente: opennet.ru

Añadir un comentario