Menu
in

Dirty COW: Conoce al bug en el kernel Linux que se escapó por nueve años

Hace poco hablamos sobre una potencial crisis de seguridad en el kernel Linux. Los expertos han debatido sobre ella hasta el cansancio, pero los bugs siguen apareciendo, y el último lleva prófugo cerca de una década. Conocido como Dirty COW o CVE-2016-5195, este bug permite a un usuario elevar sus privilegios en cuestión de segundos, aunque eso no es todo. Dirty COW fue detectado por primera vez once años atrás, el propio Linus Torvalds trató de corregirlo, una actualización posterior causó una regresión, y quedó flotando en el limbo digital desde entonces.

Nueve años, un exploit suelto, y la misma historia de siempre. El código es tan bueno como la gente que lo escribe, y a pesar del esfuerzo, la dedicación, el entrenamiento y el compromiso de los expertos, todo ese batallón de ojos no es suficiente para atrapar a cada bug que aparece. Esta situación se aplica al software en general, pero el kernel Linux es un elemento tan importante, que cuando se descubre una vulnerabilidad en su interior es inevitable observar más de cerca. Las posibilidades de que un bug permanezca en el kernel durante años es bastante grande. El promedio es de unos cinco años, pero la noticia de hoy arroja a ese promedio por la ventana…

 

El «nombre artístico» para la vulnerabilidad es Dirty COW, y técnicamente se la conoce como CVE-2016-5195. Su descripción avanzada nos habla de una condición de carrera (algo bastante común dentro de todo) detectada sobre la forma en la que el subsistema de memoria del kernel manipula una técnica de duplicación llamada Copy-On-Write. A través de esta fisura, un usuario puede obtener acceso de escritura a mapas de memoria que en situaciones normales serían de sólo lectura, llevando a una elevación de privilegios. El investigador y desarrollador Phil Oester fue quien descubrió el exploit, al que identifica como «compilado en GCC 4.8.5 con fecha 20150623», aunque eso no impide que dicho exploit lleve más tiempo en la Web, debido a la antigüedad del bug. ¿Qué tan antiguo es? De acuerdo al propio Linus Torvalds, once años, y admite que su corrección fue bastante mala. ¿Por qué? Porque una actualización posterior lo trajo de regreso, y está entre nosotros desde el año 2007.

Como era de esperarse, Dirty COW ya fue corregido por los responsables del kernel, pero ahora es tiempo de realizar actualizaciones, que obviamente no llegarán a todos los dispositivos afectados. Los usuarios de distros deberían estar recibiendo las alertas necesarias, sin embargo, el hecho de que existen millones de sistemas con Linux incapaces de recibir updates nos recuerda lo delicada que puede ser una falla de seguridad en el kernel.

Escrito por Lisandro Pardo

Leave a Reply