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
http://vigilance.fr/vulnerabilite/Noyau-Linux-deni-de-service-via-NFS-flock-10771