Llegamos a ustedes gracias a:



Alertas de Seguridad

La vulnerabilidad Dirty Pipe root de Linux

También puede afectar a los contenedores

[10/03/2022] La peligrosa falla de escalada de privilegios en Linux, denominado Dirty Pipe, que se ha revelado recientemente, podría afectar también a las aplicaciones y sistemas que utilizan la contenedorización a través de herramientas como Docker, advierten los investigadores. Esto sigue a otra vulnerabilidad de escalada de privilegios que fue parcheada la semana pasada y que podría dar lugar a escapes de contenedores.

Dirty Pipe "podría permitir a un atacante modificar efectivamente los contenedores que se ejecutan contra una imagen compartida, o envenenar una imagen en un host para que los nuevos contenedores reciban archivos modificados", señaló el investigador Rory McCune de la firma de seguridad en la nube Aqua Security en una entrada de blog.

¿Qué es Dirty Pipe?

La vulnerabilidad Dirty Pipe, rastreada como CVE-2022-0847, se encuentra en el pipeline de mensajería o pipe del kernel de Linux. Se trata de un mecanismo de comunicación entre procesos a través del cual un proceso puede enviar datos a otro proceso. Un proceso puede abrir un pipeline y escribir datos en ella. El núcleo lo almacenará en un búfer y luego esperará a que otro proceso lo lea desde allí.

Max Kellermann, desarrollador de una empresa de software llamada CM4all, descubrió la falla mientras investigaba los informes de corrupción de archivos de los usuarios de un servidor HTTP que había desarrollado. Después de eliminar todos los casos posibles en su propio software, la investigación le llevó al kernel de Linux, donde encontró un commit que se incluyó en el kernel 5.8 que cambiaba involuntariamente el comportamiento del mecanismo de pipelines de forma que generaba dichas corrupciones al añadir datos arbitrarios al pipeline desde el buffer de memoria.

Resulta que este problema puede ser explotado de forma controlada para inyectar datos arbitrarios, y escribir o modificar archivos que no deberían ser accesibles para el usuario que abre el pipeline, como los archivos de solo lectura.

"Cuando me di cuenta de cuál era el verdadero problema, pude ampliar el agujero por un gran margen: Es posible sobrescribir la caché de la página incluso en ausencia de escritores, sin restricciones de tiempo, en posiciones (casi) arbitrarias con datos arbitrarios", señaló Kellermann en su aviso.

Kellermann publicó un exploit de prueba de concepto de cómo se puede sobrescribir un archivo de solo lectura con esta falla, que es similar en impacto a otra vulnerabilidad descubierta en el 2016 en el mecanismo de copia en escritura de Linux y apodada Dirty COW. Otros investigadores llevaron el exploit más allá y demostraron cómo puede utilizarse fácilmente para modificar archivos protegidos y obtener derechos de root, el mayor privilegio posible en los sistemas Linux.

La falla afecta a todos los sistemas basados en Linux que utilicen una versión del kernel superior a la 5.8, incluido Android. Todas las distribuciones y Google han publicado parches, que deberían instalarse lo antes posible. La vulnerabilidad está clasificada como de gravedad alta, pero puede ser especialmente peligrosa en sistemas como los servidores de alojamiento web compartido, donde muchos clientes tienen cuentas con pocos privilegios y acceso al shell.

Peligro de Dirty Pipe para los contenedores

Los contenedores de Linux son potentes y permiten aislar las aplicaciones del sistema anfitrión sin utilizar la virtualización basada en el hipervisor. Una de las características principales de estos sistemas de contenedores es el uso de una imagen base de solo lectura (sistema de archivos) para hacer girar varios contenedores que luego utilizan sistemas de archivos superpuestos para almacenar cualquier cambio realizado en esos contenedores en particular. La imagen original que es la base de todos los contenedores debe permanecer intacta.

Según McCune, el exploit Dirty Pipe permite a los atacantes violar esa garantía de seguridad porque pueden hacer cambios en la imagen base desde dentro de un contenedor. Esto afectará a todos los demás contenedores que se inicien desde la misma imagen.

"Este exploit también puede afectar a los contenedores existentes", sostuvo McCune. "Por ejemplo, si tuviera un host con 10 contenedores nginx que utilizan una imagen compartida, y el atacante modificara el archivo nginx.conf en uno de ellos, cambiaría instantáneamente los archivos en los demás también, siempre y cuando siguieran utilizando el archivo de la imagen subyacente".

Además, los sistemas de contenedores permiten montar volúmenes del sistema de archivos desde el sistema anfitrión como solo lectura. Al explotar Dirty Pipe, los atacantes con acceso a un contenedor obtendrían la capacidad de modificar los datos de esos montajes de solo lectura.

Otra vulnerabilidad de privilegios parcheada la semana pasada, CVE-2022-0492, afecta a los grupos de control (cgroups), un componente fundamental de los contenedores. La explotación de esta vulnerabilidad puede llevar a una fuga de contenedores en sistemas que no utilicen refuerzos de seguridad adicionales como AppArmor, SELinux o Seccomp.

"Mientras que Docker habilitará por defecto AppArmor y seccomp, Kubernetes deshabilitó el perfil seccomp por defecto", anotó McCune en un análisis separado. "Por lo tanto, para Kubernetes, esto debe volver a habilitarse en cada carga de trabajo o a nivel de clúster utilizando controladores de admisión mutantes como OPA Gatekeeper o Kyverno".