Dirty Cow : une faille Linux vieille de neuf ans menace Android
Présente depuis 2007 dans le noyau Linux, la faille « Dirty Cow » vient d’être corrigée. Reste à diffuser le patch, notamment sur Android.
Nom : Dirty Cow. Matricule : CVE-2016-5195. Nature : vulnérabilité dans le noyau Linux. Signe particulier : officiellement corrigée le 18 octobre 2016 après… neuf années d’existence.
C’est l’effervescence autour de cette faille de sécurité* repérée la semaine passée dans le cadre d’attaques contre des serveurs Web.
Dans l’absolu, la menace est à prendre d’autant plus au sérieux qu’elle est présente dans le kernel depuis la version 2.6.22 ; ce qui fait qu’elle touche toutes les moutures d’Android, la première (1.0), sortie le 23 septembre 2008, étant basée sur Linux 2.6.25.
Red Hat ne classe pas la vulnérabilité comme « critique », mais comme « importante ». Un choix qui peut s’expliquer par le fait que les possibilités d’exploitation distante sont limitées.
Dans les faits, on est face à une situation de concurrence : plusieurs processus disposent simultanément d’une même ressource alors que chacun d’entre eux pense en avoir l’usage exclusif. Ce qui perturbe l’exécution et ouvre, dans la présente, une brèche permettant d’obtenir des droits en écriture sur des zones mémoire normalement en lecture seule.
À partir de là, il est possible d’orchestrer une montée progressive en privilèges. Les nombreux PoC (preuves d’exploitation) compilés sur GitHub en témoignent. Ils permettent aussi bien de modifier /usr/bin/passwd que de patcher libc et d’invoquer su, le tout en contournant le système de permissions.
Dans la pratique, le résultat semble très dépendant des machines. Les tests menés par les membres de la communauté LinuxFr l’illustrent.
La faille est colmatée, mais le correctif doit encore être distribué. Pour Android, il faudra attendre le patch du mois de novembre… et espérer que les constructeurs, comme les opérateurs, s’organiseront pour accélérer la diffusion.
* Dirty Cow a son Twitter et son wiki.