Se ha descubierto una vulnerabilidad en la llamada de sistema mremap que puede ser explotada por usuarios locales maliciosos para perpetrar una escalada de privilegios.

La función mremap da la capacidad de cambiar el tamaño o mover áreas de memoria virtual (VMAs) o parte de ellas. Una VMA típica suele ocupar al menos una página de memoria (que tiene un tamaño de 4kB en la arquitectura i386). Una comprobación incorrecta de tamaños descubierta dentro del código de kernel do_mremap(), que realiza el remapeo de una zona de memoria virtual puede llevar a la creación de una VMA de longitud 0.

El problema se basa en el problema de mremap, al remapear dos páginas dentro de una VMA, crea un agujero de memoria del tamaño de una página pero un VMA adicional de dos. En el caso del remapeo de una de tamaño 0, no se crea el agujero de VMA, pero se crea un descriptor adicional también de tamaño 0. Un área de memoria virtual maliciosa como esa puede desestabilizar las operaciones de otras rutinas de manejo de memoria.

Ya que no se requieren privilegios especiales para utilizar la llamada mremap, cualquier proceso puede hacer uso de este problema para desestabilizar el subsistema de manejo de memoria del kernel. La explotación con éxito de esta vulnerabilidad puede permitir la escalada local de privilegios, incluyendo la ejecución de código arbitrario con acceso a nivel kernel. Se tiene constancia de la existencia de códigos de demostración de la vulnerabilidad que crean shells con privilegios de root en sistemas vulnerables.

Demostrando agilidad a la hora de responder al problema, gran cantidad de distribuciones Linux han publicado ya actualizaciones para corregir este problema, entre las que se encuentran las siguientes:

Astaro
http://www.astaro.org/showflat.php?Cat=&Number=34176&page=0&view=collapsed&sb=5&o=&fpart=1

Conectiva
http://distro.conectiva.com.br/atualizacoes/index.php?id=a&anuncio=000799

Debian
http://www.debian.org/security/2004/dsa-413

EnGarde
http://www.linuxsecurity.com/advisories/engarde_advisory-3904.html

Fedora
http://www.redhat.com/archives/fedora-announce-list/2004-January/msg00000.html

Red Hat
https://rhn.redhat.com/errata/RHSA-2003-417.html

SuSE
http://lists.suse.com/archive/suse-security-announce/2004-Jan/0001.html

Turbo Linux
http://www.turbolinux.com/security/2004/TLSA-2004-1.txt

Julio Canto
jcanto@hispasec.com

Más información:

Linux kernel do_mremap local privilege escalation vulnerability
http://isec.pl/vulnerabilities/isec-0013-mremap.txt

Compártelo: