Max Kellermann, programador e investigador de seguridad de los creadores de software de gestión de contenido alemanes CM4all, acaba de publicar un informe sobre una vulnerabilidad del kernel de Linux que se corrigió recientemente.
Llamó a la vulnerabilidad Dirty Pipe, porque implica una interacción insegura entre un archivo de Linux verdadero (uno que se guarda de forma permanente en el disco) y una tubería de Linux, que es un búfer de datos de solo memoria que se puede usar como un archivo.
¿Cómo funciona?
Pipe, abreviatura de pipeline, es un mecanismo de comunicación unidireccional entre procesos los cuales se encuentra encadenados de tal manera que cada uno de ellos toma la entrada del anterior y produce una salida para el siguiente, de forma sucesiva.
Explotar la vulnerabilidad requiere realizar los siguientes pasos: crear un pipe, llenar el pipe con datos arbitrarios, drenar el pipe, empalmar datos del archivo de solo lectura de destino y escribir datos arbitrarios en el pipe, Kellerman describió en una prueba de Explotación del concepto (PoC) que demuestra el fallo
En pocas palabras; la vulnerabilidad es de alto riesgo porque permite que un atacante realice una serie de acciones maliciosas en el sistema, incluida la manipulación de archivos confidenciales como /etc/passwd, agregar claves SSH para acceso remoto e incluso ejecutar binarios arbitrarios con los más altos privilegios.
¿Quiénes son afectados?
Los usuarios de varias distribuciones de Linux y dispositivos Android deben estar atentos a las actualizaciones de seguridad que implementan el parche.
CVE-2022-0847 afecta a Linux Kernel 5.8 y versiones posteriores (posiblemente incluso anteriores), y se ha corregido en Linux 5.16.11, 5.15.25 y 5.10.102 y el último kernel de Android.
Las organizaciones que desarrollan varias distribuciones de Linux también han sido notificadas al respecto en febrero y están trabajando para probar sus paquetes en busca de la falla, corregirla donde se encuentre y sea explotable (SUSE, Red Hat, Debian).
Recomendaciones
- Si es usuario de Linux 5.x: Si la versión del kernel es 5.10.102, 5.15.25 o 5.16.11 (o superior). Si su distribución usa versiones anteriores del kernel con sus propios parches de seguridad «regressed», consulte con el fabricante de su distribución para obtener más detalles. De lo contrario, simplemente ejecute el comando
uname -r
para imprimir la versión de su kernel. - Si es usuario de Android: Puede ver la versión de su kernel en Configuración > Acerca del teléfono > Versión de Android > Versión del kernel. Si tiene la versión 5.10, le sugerimos que vigile la página de descripción general de los Boletines de seguridad de Android.
Links de interés
- https://thehackernews.com/2022/03/researchers-warn-of-linux-kernel-dirty.html
- https://access.redhat.com/security/cve/cve-2022-0847
- https://dirtypipe.cm4all.com/
- https://nakedsecurity.sophos.com/2022/03/08/dirty-pipe-linux-kernel-bug-lets-anyone-to-write-to-any-file/