Vigil@nce : Noyau Linux, déni de service via socket backlog
mai 2011 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 envoyer de nombreux paquets sur une socket
en écoute sur le loopback, afin de stopper le système.
– Gravité : 1/4
– Date création : 30/05/2011
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Le noyau Linux emploie un "backlog" afin de stocker les paquets
reçus, qui sont en attente de traitement, avant d’être transmis à
l’utilisateur, qui les traite par exemple avec recvmsg().
Le noyau utilise un "spinlock" (boucle avec un verrou) qui gère
l’ajout des paquets dans le backlog et leur suppression (via
recvmsg() par exemple).
Cependant, lorsque de nombreux paquets sont reçus, le spinlock
entre en boucle infinie. Des paquets continuent alors à être
ajoutés, mais ils ne sont pas enlevés. Toute la mémoire du noyau
est progressivement utilisée.
Un attaquant peut donc envoyer de nombreux paquets sur une socket
en écoute, afin de stopper le système. Le débit à atteindre limite
l’attaque sur le périphérique loopback.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-socket-backlog-10693