Vigil@nce : Noyau Linux, débordement d’entier de drm_modeset_ctl
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, qui est autorisé à modifier la configuration
vidéo, peut employer un ioctl afin de mener un déni de service ou
de faire exécuter du code.
– Gravité : 2/4
– Date création : 28/04/2011
PRODUITS CONCERNÉS
– Linux noyau
– OpenBSD
– OpenSUSE
– SUSE Linux Enterprise Server
DESCRIPTION DE LA VULNÉRABILITÉ
L’ioctl DRM_IOCTL_MODESET_CTL permet de définir le "vertical
blank" (durée de retour de faisceau) d’une carte vidéo. Elle est
identifiée par son "crtc" (crt controller), qui est un entier
positif.
L’ioctl DRM_IOCTL_MODESET_CTL appelle la fonction
drm_modeset_ctl() définie dans le fichier drivers/gpu/drm/drm_irq.c.
Cette fonction vérifie que le crtc ne soit pas trop grand.
Cependant cette comparaison est menée sur des entiers signés. Un
attaquant peut donc employer un grand numéro de crtc qui devient
négatif et contourne donc la comparaison. Les opérations de
l’ioctl (DRM_PRE_MODESET et DRM_POST_MODESET) travaillent alors à
une adresse mémoire invalide et corrompent la mémoire.
Un attaquant local, qui est autorisé à modifier la configuration
vidéo, peut donc employer un ioctl afin de mener un déni de
service ou de faire exécuter du code.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/Noyau-Linux-debordement-d-entier-de-drm-modeset-ctl-10602