Vigil@nce - Noyau Linux : déni de service via ip_expire/icmp_send
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 réseau peut employer une requête illicite afin de
créer un déni de service.
Gravité : 2/4
Date création : 18/05/2011
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
La fonction icmp_send() de "/net/ipv4/icmp.c" est utilisé par le
noyau pour transmettre des messages d’erreur ICMP lorsque
certaines conditions sont détectées.
La fonction ip_expire() de "/net/ipv4/ip_fragment.c" gère une file
d’attente de fragments lorsqu’elle dépasse un certain temps., et
appelle icmp_send() pour envoyer une réponse ICMP d’erreur.
Le noyau stocke les paquets dans des structures sk_buff (socket
kernel buffer, ou skb).
Lorsqu’une trame est défragmentée le dernier champ dst de skb est
utilisé pour la construction du skb final. Cependant si un timeout
se produit, le premier fragment (champ dst de skb) est utilisé
pour créer un message ICMP TIME_EXCEEDED, et les autres
déréférencent alors un pointeur NULL. Ainsi lorsque icmp_send()
est appelé cela provoque un déni de service.
Un attaquant réseau peut donc employer une requête ICMP illicite
afin de créer un déni de service.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-ip-expire-icmp-send-10668