- -

Árbol de páginas

Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Sugerencia

INFORMACIÓN SUJETA A CAMBIOS. Suscríbase a esta página de la wiki para recibir notificaciones cuando haya novedades (botón "Seguir(W)" en la barra de arriba).


Tabla de contenidos

Incluir página
PÚBLICA
PÚBLICA

Sistemas afectados

Versiones de Kernel de linux vulnerables

Este problema abusa de la librería cifs-utils que se utiliza para conectar desde Linux a carpetas compartidas SMB. Sin embargo, desde hace un tiempo el código necesario para el protocolo SMB está dividido en rutinas implementadas en la propia librería, y otras rutinas incluidas dentro del Kernel de Linux.

En este caso el código vulnerable está en el kernel de Linux. Actualizar la librería cifs-utils no tiene ningún efecto sobre la resolución de esta vulnerabilidad.

Véase advertencia sobre backporting en el siguiente apartado.

Versiones de kernel parcheadas
7.1-rc5   o superiores

Fuente; https://github.com/torvalds/linux/commit/3da1fdf4efbc490041eb4f836bf596201203f8f2

Distribuciones


Distribuciones vulnerables “por defecto” (ya incluyen la configuración vulnerable y cifs-utils)

...

    - Amazon Linux 2023 KVM


Detección de la vulnerabilidad o mitigación

Esta vulnerabilidad requiere de algunos requisitos para que el exploit sea funcional. Antes de aplicar una mitigación, conviene comprobar que los requisitos se cumplen para evitar actuaciones en sistemas en los que la vulnerabilidad no se puede explotar.

Los requisitos para explotar esta vulnerabilidad son:

  1. Versión vulnerable del kernel de Linux.
  2. Paquete "cifs-utils" instalado y habilitado.
  3. Configuración de cifs vulnerable.
  4. Se permite que los usuarios normales puedan crear espacios de usuario.

Si no se cumple cualquiera de las anteriores condiciones, la vulnerabilidad no se puede explotar.

Como ver la versión de Kernel de Linux:

Bloque de código
uname -r

Comprobar si el paquete cifs-utils está instalado:

Bloque de código
# Cualquier distro
mount.cifs -V
# Debian / Ubuntu / Linux Mint
apt list --installed 2>/dev/null | grep cifs-utils
# alternativa Debian / Ubuntu / Linux Mint
dpkg -l | grep cifs-utils

Para comprobar si el módulo está habilitado no sirve el comando "lsmod". Este comando sólo indica si está cargado actualmente, pero puede suceder que el módulo no esté cargado pero está disponible. En su lugar, es más conveniente el comando "modinfo" que proporciona información si el módulo está disponible.

Bloque de código
# comprueba si el módulo está disponible
modinfo cifs

La configuración de cifs vulnerable menciona el binario "cifs.upcall"

Bloque de código
# Ejemplo de configuración vulnerable
vagrant@ubuntu-jammy:~$ cat /etc/request-key.d/cifs.spnego.conf
create  cifs.spnego    * * /usr/sbin/cifs.upcall %k

Si tiene otra configuración diferente, puede que sea o puede que no sea vulnerable.

Otro requisito es la capacidad de que usuarios normales puedan crear namespaces de usuarios y recursos. Compruebe con esta instrucción:

Bloque de código
# Debian / Ubuntu / Linux Mint
sysctl kernel.unprivileged_userns_clone
# RHEL, CentOs, Rocky, AlmaLinux
sysctl user.max_user_namespaces

Si devuelve 1 significa que este requisito se cumple para la vulnerabilidad.