Vigil@nce : Noyau Linux, fuite mémoire via keyctl_join_session_keyring
janvier 2009 par Vigil@nce
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant local peut employer keyctl() afin de progressivement
mener un déni de service.
Gravité : 1/4
Conséquences : déni de service de la machine
Provenance : shell utilisateur
Moyen d’attaque : aucun démonstrateur, aucune attaque
Compétence de l’attaquant : expert (4/4)
Confiance : confirmé par l’éditeur (5/5)
Diffusion de la configuration vulnérable : élevée (3/3)
Date création : 19/01/2009
PRODUITS CONCERNÉS
– Linux noyau
DESCRIPTION DE LA VULNÉRABILITÉ
Le noyau peut stocker des clés cryptographiques, qui sont gérées
dans le fichier security/keys/keyctl.c, utilisé par l’appel
système keyctl().
Un keyring ("anneau de clés") définit un ensemble de clés.
La fonction keyctl_join_session_keyring() permet de se joindre à
un keyring :
long keyctl_join_session_keyring(const char __user *_name) ;
Cependant, le nom du keyring (_name) est copié dans une zone
mémoire qui n’est jamais libérée.
Un attaquant local peut donc appeler keyctl(KEYCTL_JOIN_SESSION_KEYRING)
de nombreuses fois afin de progressivement utiliser l’ensemble de
la mémoire du noyau.
CARACTÉRISTIQUES
Références : BID-33339, CVE-2009-0031, VIGILANCE-VUL-8404
http://vigilance.fr/vulnerabilite/Noyau-Linux-fuite-memoire-via-keyctl-join-session-keyring-8404