• Con el fin de ofrecerle una experiencia de navegación adaptada a sus necesidades le informamos de que esta web utiliza cookies. Puede deshabilitarlas en las opciones de su navegador web. Mas info Politica de Cookies Free data recovery software

Elevación de privilegios en el kernel Linux desde el año 2001

dunanea

Super Moderador@s
Miembro del Staff
Existen varios errores de validación en los valores de la estructura de datos "proto_ops". Esto podría ser aprovechado por un atacante local para elevar privilegios a través de llamadas a funciones con una estructura de datos "proto_ops" especialmente manipuladas. Esta vulnerabilidad existe desde el año 2001, y afecta a los kernel 2.4 y 2.6 de Linux.
La estructura "proto_ops" está definida en la librería net.h de Linux. Los protocolos usan esta estructura para realizar distintas funciones: bind, connect, etc.

Cuando un protocolo no va a implementar una de estas funciones debería asignar la función "sock_no_*" adecuada. Por ejemplo en el caso del puntero "sendpage" cuando este valor no va a ser usado debería de ser inicializado a la función "sock_no_sendpage" que está definida e implementada en sock.h y sock.c respectivamente.

La estructura "proto_ops" debería ser inicializada por completo por los distintos protocolos implementados en Linux, pero no siempre es así; por ejemplo en "bnep_sock_ops" (el tipo "proto_ops" de bluetooth) el campo "connect" entre otros, sí apunta a "sock_no_connect" sin embargo los campos "getsockopt", "compat_setsockopt", "sendpage" y "splice_read" no son definidos haciendo referencia a un puntero nulo.

Se hecho público un exploit que aprovecha esta vulnerabilidad.

Parche para la rama 2.6:
http://git.kernel.org/?p=linux/kern...in;h=c18d0fe535a73b219f960d1af3d0c264555a12e3

Parche para la rama 2.4:
git.kernel.org - linux/kernel/git/torvalds/linux-2.6.git/commitdiff


Opina sobre esta noticia:
Comentario para una-al-dia 16/08/2009. Elevación de privilegios en el kernel Linux desde el año 2001

Más Información:

CVE:
CVE-2009-2692

Red Rat bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=516949#c10

struct proto_ops:
LXR linux/include/linux/net.h

struct proto_ops bnep_sock_ops
LXR linux/net/bluetooth/bnep/sock.c
 
 
Back
Arriba