...
| 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 | ||||
|---|---|---|---|---|
|
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)
...
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 no evitar actuaciones en sistemas en los que la vulnerabilidad no se puede explotar.
Los requisitos para explotar esta vulnerabilidad son:
- Versión vulnerable del kernel de Linux.
- Paquete paquete "cifs-utils" instalado y habilitado (con la versión vulnerable).
- configuración Configuración de cifs vulnerable.
- se Se permite que los usuarios normales puedan crear espacios de usuario.
Si no se cumple uno solo cualquiera de las tres 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.