Escalado de privilegios en Linux mediante escritura en memoria (CVE-2012-0056)

El mismísimo Linus Torvalds publicó este fin de semana una actualización de kernel que corregía un fallo en el control de acceso a la memoria. Poco después y como muchos ya conocéis, han aparecido exploits como Mempodipper que se aprovechan de este error para obtener privilegios de root.

Desde la versión 2.6.39 el dump de cada proceso puede verse en /proc/pid/mem e incluso ser escrito. Antes de esa versión, un #ifdef en el código prevenía la escritura, pero decidió quitarse debido a que se establecieron otros controles para asegurar que sólo los procesos con los permisos correctos pudieran escribir en la memoria.
Sin embargo, dichos controles resultan ser insuficientes y pueden evadirse fácilmente.

Después de la publicación del artículo de Nerdling Sapple, otros coders han usado esta información para crear otros exploits y ya podemos encontrar varios funcionales en Internet. Estos exploits manipulan la memoria virtual de un programa con el setuid para root activado y consiguen que un usuario regular del sistema pueda elevar privilegios. Incluso Jay Freeman, conocido como Saurik en la comunidad de jailbreaking para iPhone, ha desarrollado una versión para Android.

Distribuciones como Ubuntu ya han facilitado parche y otras como Red Hat están todavía preparándolo y han publicado algunas contramedidas para esta vulnerabilidad, la CVE-2012-0056.

Comentarios