Hackear servidores Ubuntu 22.04 con solo 30 líneas de código y obtener privilegios de root

Se ha encontrado una vulnerabilidad reciente en el subsistema OverlayFS del kernel de Linux como CVE-2023-0386, con una puntuación CVSS de 7,8. La falla, que es causada por el manejo descuidado de las copias de usuario de un archivo capaz de un montaje nosuid a otro montaje, permite el acceso no autorizado a la ejecución de archivos setuid con capacidades. Esta falla de mapeo de uid crea un grave riesgo de seguridad al permitir que los usuarios locales aumenten sus privilegios en el sistema.

El investigador Xkaneiki creó un ataque de prueba de concepto (PoC) para esta vulnerabilidad, destacando los posibles peligros que plantea CVE-2023-0386. En Ubuntu 22.04, se probó la vulnerabilidad PoC y se obtuvo acceso de root. La presencia del código de explotación de prueba de concepto (PoC) para CVE-2023-0386 enfatiza cuán urgente es que los desarrolladores y administradores de sistemas prioricen las actualizaciones de seguridad para corregir esta falla de escalada de privilegios del kernel de Linux y detener posibles ataques.

Un atacante con acceso de usuario con pocos privilegios a una computadora Linux con un montaje superpuesto que tiene una capacidad de archivo en una de sus capas puede escalar sus privilegios hasta la raíz gracias al problema de escalada de privilegios del kernel de Linux, identificado como CVE-2023-0386. El atacante puede copiar un archivo compatible de un montaje nosuid en otro montaje para hacer esto. Esta vulnerabilidad es comparable a CVE-2021-3847 pero tiene mayor prioridad ya que puede ser explotada con menos permisos.

Procedimientos de reproducción:

  1. Monte un sistema de archivos FUSE que exponga un binario setuid/setgid de propiedad raíz y de escritura mundial.
  2. Deshabilite el uso compartido de espacios de nombres de usuario/montaje.
  3. Monte una superposición con un directorio superior grabable por el usuario y el sistema de archivos FUSE como directorio inferior. Asegúrese de que el directorio superior esté montado en un disco sin usar el comando ‘nosuid’.
  4. Para actualizar el mtime del archivo e iniciar una copia, toque el archivo en la ruta combinada.
  5. Debido a que el kernel no borra los bits setuid/gid, una copia del binario con los bits setuid estará presente en el directorio superior.
  6. Si ejecuta el binario desde el directorio superior, la raíz será el usuario que se ejecuta.

A diferencia de CVE-2021-3847, que incluye capacidades de archivo (xattrs) que están sujetas a restricciones únicas dentro de los espacios de nombres de usuario, CVE-2023-0386 ataca los bits setgid/setuid, que no son específicos del espacio de nombres de usuario. Además, FUSE no necesita acceso físico y está presente en muchas situaciones de producción, en contraste con CVE-2021-3847, que se relaciona con soportes USB que necesitan acceso físico y, a menudo, se bloquean en dichos contextos.