Dirty COW: vulnerabilidad en Linux que permite escalada de privilegios

dirty-cow

Se ha descubierto una nueva vulnerabilidad en el kernel. Nombre llamativo, bonito logo, cuenta en twitter y sitio web dedicado –tienda online incluida– todo eso podría hacernos pensar que se trata de algo importante. Bueno, pues en este caso si lo es.

Clasificada de forma oficial como CVE-2016-5195 y descubierto por Phil Oester –un experto en seguridad y desarrollador de Linux–, Dirty COW (copy-on-write) permite una escalada de privilegios de forma remota o local.

El problema se localiza en el subsistema de memoria del kernel, en el proceso de copia virtual de operaciones en escritura (copy on write) que hace el núcleo. A efectos prácticos permitiría a usuarios locales sin privilegios utilizar un exploit, para escribir y tener acceso a partes del sistema que son de otros usuarios o incluso de root.

Es decir archivos disponibles por defecto en modo de solo lectura, que podrían ser modificados, introduciendo cualquier tipo de código malicioso, todo tipo de malware, incluyendo rootkits.

Por supuesto también puede ser utilizado (y algunas fuentes sugieren que así ha sido) “in the wild”. En particular en servidores web o servicios online que permitan subir archivos, según comentan en Ars Technica, que lo describe como “most serious Linux privilege-escalation ever”.

En Ars siempre han sido de darle bastante caña a Linux y al software libre en temas de seguridad –los de Windows le suelen pasar más desapercibidos–, pero sin caer en el alarmismo (vamos a morir todos, en particular los usuarios de Android) señalar que ya existen pruebas de concepto y exploits que demuestran que es posible ganar credenciales de root, en apenas unos segundos.

La vulnerabilidad ha estado presente durante muchos años (desde la versión 2.6.22 del kernel, liberada en 2007) e incluso Linus fue consciente de ella en su momento.

Para mitigarla se incluyó un parche que posteriormente fue eliminado porque era incompatible con otras funciones del kernel y se pensó que en el fondo era un bug trivial, sin aplicación práctica. El mismo Torvalds lo comenta:

This is an ancient bug that was actually attempted to be fixed once (badly) by me eleven years ago in commit 4ceb5db9757a («Fix get_user_pages() race for write access») but that was then undone due to problems on s390 by commit f33ea7f404e5 («fix get_user_pages bug»).

In the meantime, the s390 situation has long been fixed, and we can now fix it by checking the pte_dirty() bit properly (and do it better).

Linux 4.8.3, 4.7.9 y 4.4.26 LTS son las ediciones seguras de las diferentes ramas del núcleo en este momento.

Algunas de las principales distribuciones GNU/Linux ya han actualizado su versión del kernel para resolver la vulnerabilidad y otras están camino de hacerlo (a la hora de escribir esto, Arch Linux lo tenía en el repo testing)

Podéis comprobar vuestra versión de kernel, desde la terminal mediante el comando:

uname -a

Tenéis más información en la web de Dirty Cow, además de algunos consejos «útiles» sobre como desinstalar Linux o prevenir que este pase en el futuro, donando al proyecto FreeBSD

Por supuesto también os podéis pasar por la tienda y echar un vistazo a las ofertas: maletines para ordenador, camisetas, relojes, mochilas, relojes de pared, tazas…a precios prácticamente regalados (de $300 a $17 000), para celebrar la ocasión.

Yo ya le tengo echado el ojo a esta especie de termo:

termo-cow

No se puede decir que a su creador le falte sentido del humor. A partir de ahora ninguna revelación de vulnerabilidad sin su tienda online.

13 comentario en “Dirty COW: vulnerabilidad en Linux que permite escalada de privilegios”

Responder a tannhausser Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.