Vigil@nce : Noyau Linux, débordement d’entier via RDS
novembre 2010 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant local peut employer un sendmsg() sur une socket RDS,
avec un grand tableau iovec, afin de provoquer un débordement
d’entier, conduisant à une corruption de mémoire.
– Gravité : 2/4
– Date création : 29/10/2010
DESCRIPTION DE LA VULNÉRABILITÉ
Le protocole RDS (Reliable Datagram Socket) permet de transmettre
des données en mode non connecté. Il est supporté par le noyau
depuis la version 2.6.30.
L’appel système sendmsg() permet d’envoyer un message sur une
socket :
sendmsg(socket, &msghdr, flags) ;
La structure msghdr contient un tableau de structures iovec (zone
mémoire où stocker les données).
L’implémentation de sendmsg() pour RDS utilise rds_rdma_pages() du
fichier net/rds/rdma.c pour gérer les pages mémoire. Cependant, si
les paramètres de sendmsg() sont trop grands, le nombre de pages
déborde.
Un attaquant local peut donc employer un sendmsg() sur une socket
RDS, avec un grand tableau iovec, afin de provoquer un débordement
d’entier, conduisant à une corruption de mémoire.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-debordement-d-entier-via-RDS-10086