Une
situation de compétition (
race condition)
a été trouvée le 14 octobre dans les fonctions pipe_read_open(), pipe_write_open() et pipe_rdwr_open() du noyau Linux par Earl Chew, bug vieux de plus de dix ans. Deux jours plus tard, Earl a
écrit un patch corrigeant le bug (
commité le 21 octobre, il fait partie de la version 2.6.32-rc6).
L'histoire pourrait s'arrêter là, mais Eugene Teo de Red Hat
a découvert cinq jours plus tard que le bug est une faille de sécurité. La faille est facile à exploiter avec la
boîte à outils de
Brad Spengler. Comme les dernières failles du noyau Linux (
vmsplice(),
tun_chr_pool() et
perf_counter), la faille est liée au déréférencement d'un pointeur NULL. Brad Spengler a écrit un exploit (pouvoir passer root à partir d'un compte utilisateur) fonctionnant sur, au moins, Debian Etch, Fedora (6, 10 et 11), et RedHat (5.3 et 5.4). L'exploit contourne les protections SELinux dans le cas de Fedora 10 et RedHat 5.4. Il devrait publier son exploit dans les prochains jours.
Pour se protéger (ou vérifier si votre système est vulnérable ou non), assurez-vous que la valeur de /proc/sys/vm/mmap_min_addr ne soit pas nulle. Debian Sid, Mandriva Linux 2010.0, Fedora 12, Ubuntu (Ibex et supérieurs) et les noyaux patchés avec grsecurity ne sont pas vulnérables. Alors que Debian Lenny et Squeeze ont une valeur nulle par exemple (il est prévu de changer ça à partir de Debian 5.0.4). Comme l'option mmap_min_addr a été introduite dans Linux 2.6.23, Debian Etch (qui utilise un noyau 2.6.18) est vulnérable : vous pouvez utiliser les
paquets etchhalf pour installer un noyau 2.6.24. Des
correctifs pour RedHat sont déjà disponibles.