Vigil@nce - Noyau Linux : déni de service via NFS flock
juin 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 appeler la fonction flock() sur un partage NFS, afin de mener un déni de service.
Gravité : 1/4
Date création : 23/06/2011
PRODUITS CONCERNÉS
Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
L’appel système flock() permet de placer un verrou exclusif/partagé sur un fichier.
Le protocole NFS ne supporte pas les verrous. Lorsqu’un client demande un verrou sur un fichier NFS, une requête RPC NLM (Network Lock Manager) est employée pour le gérer.
Lorsqu’un utilisateur Linux appelle flock() pour verrouiller (ou déverrouiller) un fichier situé sur un serveur NFS distant, le client NFS du noyau Linux appelle la fonction nlmclnt_lock() (ou nlmclnt_unlock()).
Si le démon NLM du serveur NFS est injoignable, la fonction nlmclnt_unlock_callback() du client Linux cherche à déverrouiller le fichier. Cependant, comme NLM est injoignable, une boucle infinie se produit avec la fonction call_bind_status() du fichier net/sunrpc/clnt.c.
Un attaquant local peut donc appeler la fonction flock() sur un partage NFS distant, afin de mener un déni de service.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
Tweeter