En fin de semaine dernière, le fabricant de puces graphiques Nvidia a livré une version 304.32 de son pilote Unix. Celle-ci corrige une vulnérabilité à haut risque qui peut être exploitée par des utilisateurs locaux pour obtenir les privilèges root sur les systèmes Linux. La vulnérabilité pouvant amener à une escalade locale des privilèges a été rendue publique mercredi par Dave Airlie, ingénieur principal de l'équipe graphique chez Red Hat (voir illustration principale).
« La divulgation publique a été faite à la demande d'un chercheur anonyme, à l'origine de la découverte de la faille, parce que Nvidia n'a pas répondu à un rapport sur la vulnérabilité qui lui a été discrètement adressé », explique Dave Airlie dans un message posté sur la liste de diffusion Full Disclosure. Dans son mail, l'ingénieur a également inclus le code proof-of-concept de l'exploit créé par le chercheur anonyme qui montre comment il a pu tirer profit de la vulnérabilité. « Au mois de juin, nous avons contacté Nvidia via leur canal sécurisé », a encore déclaré l'ingénieur. « Mais il semble que des problèmes de procédure nous ont amenés à croire que notre message avait été ignoré ». La vulnérabilité a été identifiée dans le pilote Unix 295.59 de Nvidia et les versions antérieures, mais l'exploit proof-of-concept a été conçu pour les systèmes Linux 64-bit.
Un patch disponible pour l'ancien pilote incriminé
Vendredi, Nvidia a confirmé l'existence de la vulnérabilité et a livré la version 304.32 du pilote Unix de Nvidia pour Linux, FreeBSD et les systèmes d'exploitation Solaris pour y remédier. La nouvelle version comprend également d'autres modifications, qui devraient, selon le constructeur, empêcher des exploits similaires dans le futur. « N'importe quel utilisateur ayant un accès en lecture/écriture aux fichiers de périphériques Nvidia (cet accès est nécessaire pour faire tourner des applications qui utilisent le GPU) pourrait exploiter cette vulnérabilité pour accéder à une zone de mémoire arbitraire du système. C'est la raison pour laquelle cette vulnérabilité est classée à haut risque par Nvidia», a déclaré le constructeur dans un article de support technique. Cependant, malgré la disponibilité de la nouvelle version, Nvidia propose toujours sur sa page de pilotes Unix la version 295.59 comme téléchargement principal par défaut.
Afin de permettre aux utilisateurs qui ne peuvent ou ne veulent pas passer à la nouvelle version du pilote de résoudre le problème, Nvidia a également livré un correctif qui peut être appliqué manuellement sur les anciens drivers. Leur déploiement nécessite en premier lieu l'installation d'un ancien patch qui corrige une vulnérabilité différente. Cependant, contrairement à la nouvelle version 304.32 du pilote, le patch manuel supprime la compatibilité avec le débogueur Linux CUDA, un outil utilisé par les développeurs pour supprimer les erreurs de programmation du code écrit pour la technologie d'accélération matérielle CUDA de Nvidia. Les vendeurs Linux pourraient aussi livrer des versions corrigées d'anciens pilotes Nvidia qui ont été testés avec différentes versions de leurs distributions Linux. Les utilisateurs doivent passer par leurs canaux de mise à jour respectifs pour obtenir éventuellement ces versions.