L’Agence américaine de cybersécurité et de sécurité des infrastructures a ajouté un bug de sécurité critique dans Linux à sa liste de vulnérabilités connues pour être activement exploitées dans la nature.
La vulnérabilité, identifiée comme CVE-2024-1086 et portant un indice de gravité de 7,8 sur 10 possibles, permet aux personnes qui ont déjà pris pied dans un système affecté d’élever leurs privilèges système. C’est le résultat d’une erreur d’utilisation après libération, une classe de vulnérabilité qui se produit dans les logiciels écrits dans les langages C et C++ lorsqu’un processus continue d’accéder à un emplacement mémoire après sa libération ou sa désallocation. Les vulnérabilités d’utilisation après libération peuvent entraîner une élévation de code ou de privilèges à distance.
La vulnérabilité, qui affecte les versions 5.14 à 6.6 du noyau Linux, réside dans NF_tables, un composant du noyau activant Netfilter, qui à son tour facilite diverses opérations réseau, notamment le filtrage de paquets, l’adresse réseau. [and port] traduction (NA[P]T), journalisation des paquets, mise en file d’attente des paquets dans l’espace utilisateur et autres modifications des paquets. Il a été corrigé en janvier, mais comme l’indique l’avis CISA, certains systèmes de production ne l’ont pas encore installé. Au moment où ce message d’Ars a été mis en ligne, il n’y avait aucun détail connu sur l’exploitation active.
Une analyse approfondie de la vulnérabilité révèle que ces exploits fournissent « une primitive de double libération très puissante lorsque les chemins de code corrects sont atteints ». Les vulnérabilités de double libération sont une sous-classe d’erreurs d’utilisation après libération qui se produisent lorsque la fonction free() permettant de libérer de la mémoire est appelée plusieurs fois pour le même emplacement. Le document répertorie plusieurs façons d’exploiter la vulnérabilité, ainsi que le code permettant de le faire.
L’erreur de double libération est le résultat de l’échec de la vérification des entrées dans les verdicts de netfilter lorsque nf_tables et les espaces de noms d’utilisateurs non privilégiés sont activés. Certaines des techniques d’exploitation les plus efficaces permettent l’exécution de code arbitraire dans le noyau et peuvent être conçues pour supprimer un shell racine universel.
L’auteur a proposé le graphique suivant fournissant une illustration conceptuelle :
La CISA a donné aux agences fédérales sous son autorité jusqu’au 20 juin pour publier un correctif. L’agence exhorte toutes les organisations qui n’ont pas encore appliqué une mise à jour à le faire dès que possible.