Vulnérabilité Linux “Dirty Pipe” découverte

Lundi, un chercheur en cybersécurité a publié les détails d’une vulnérabilité Linux qui permet à un attaquant d’écraser des données dans des fichiers arbitraires en lecture seule.

La vulnérabilité – CVE-2022-0847 – a été découverte par Max Kellermann en avril 2021, mais il lui a fallu encore quelques mois pour comprendre ce qui se passait réellement.

Kellermann a expliqué que la vulnérabilité affecte le noyau Linux 5.8 et les versions ultérieures, mais a été corrigé sous Linux 5.16.11, 5.15.25 et 5.10.102.

“Tout a commencé il y a un an avec un ticket d’assistance concernant des fichiers corrompus. Un client s’est plaint que les journaux d’accès qu’il avait téléchargés ne pouvaient pas être décompressés. Et en effet, il y avait un fichier journal corrompu sur l’un des serveurs de journaux ; il pouvait être décompressé, mais gzip a signalé une erreur CRC. Je ne pouvais pas expliquer pourquoi il était corrompu, mais j’ai supposé que le processus de division nocturne s’était écrasé et avait laissé un fichier corrompu. J’ai corrigé le CRC du fichier manuellement, fermé le ticket et rapidement oublié le problème, dit Kellermann.

“Des mois plus tard, cela s’est produit encore et encore. Chaque fois, le contenu du fichier semblait correct, seul le CRC à la fin du fichier était erroné. Maintenant, avec plusieurs fichiers corrompus, j’ai pu creuser plus profondément et j’ai trouvé un type surprenant de corruption. Un modèle a émergé.

Kellermann a ensuite montré comment il avait découvert le problème et comment quelqu’un pourrait potentiellement l’exploiter. Il a d’abord supposé que le bogue n’était exploitable que pendant qu’un processus privilégié écrivait le fichier et que cela dépendait du moment.

Mais il a découvert plus tard qu’il était possible d’écraser le cache de page même en l’absence d’écrivains, sans contraintes de temps, “à des positions (presque) arbitraires avec des données arbitraires”.

Afin d’exploiter la vulnérabilité, l’attaquant doit avoir des autorisations de lecture, le décalage ne doit pas être sur une limite de page, l’écriture ne peut pas traverser une limite de page et le fichier ne peut pas être redimensionné.

Pour exploiter cette vulnérabilité, vous devez : créer un tube, remplir le tube avec des données arbitraires (pour définir l’indicateur PIPE_BUF_FLAG_CAN_MERGE dans toutes les entrées de l’anneau), vider le tube (en laissant l’indicateur défini dans toutes les instances de struct pipe_buffer sur le struct pipe_inode_info ring ) , épissez les données du fichier cible (ouvert avec O_RDONLY) dans le tuyau juste avant le décalage cible [and] écrire des données arbitraires dans le tube », a-t-il expliqué.

“Ces données écraseront la page du fichier mis en cache au lieu de créer une nouvelle structure anonyme pipe_buffer car PIPE_BUF_FLAG_CAN_MERGE est défini. Pour rendre cette vulnérabilité plus intéressante, elle fonctionne non seulement sans autorisations d’écriture, mais également avec des fichiers immuables, sur des instantanés btrfs en lecture seule et sur les montages en lecture seule (y compris les montages sur CD-ROM). C’est parce que le cache de page est toujours accessible en écriture (par le noyau) et que l’écriture dans un canal ne vérifie jamais les autorisations.

Il a également partagé son propre exploit de preuve de concept.

Le rapport de bogue, l’exploit et le correctif ont été envoyés au Équipe de sécurité du noyau Linux par Kellermann le 20 février. Le bogue a été reproduit sur Google Pixel 6 et un rapport de bogue a été envoyé à l’équipe de sécurité Android.

Linux a publié des correctifs (5.16.11, 15.05.25, 5.10.102) le 23 février et Google a fusionné Kellermann’s correction de bogue dans le noyau Android le 24 février.

Kellermann et d’autres experts par rapport la vulnérabilité à CVE-2016-5195 “Vache sale” mais dit que c’est encore Plus facile pour exploit.

Mike Parkin de Vulcan Cyber ​​a déclaré que tout exploit qui donne un accès au niveau racine à un système Linux est problématique.

“Un attaquant qui gagne root acquiert un contrôle total sur le système cible et peut être en mesure d’exploiter ce contrôle pour atteindre d’autres systèmes. Le facteur atténuant avec cette vulnérabilité est qu’elle nécessite un accès local, ce qui réduit légèrement le risque”, a déclaré Parkin.

“L’escalade des privilèges vers root (famille POSIX) ou Admin (Windows) est souvent la première priorité d’un attaquant lorsqu’il accède à un système, car cela lui donne le contrôle total de la cible et peut l’aider à étendre son emprise sur d’autres victimes. n’a pas changé depuis des lustres et il est peu probable qu’il change dans un avenir prévisible.”

Shweta Khare, évangéliste de la cybersécurité chez Delinea, a noté que plusieurs vulnérabilités du noyau Windows, du serveur DNS RCE et d’Adobe de haut niveau ont déjà fait l’actualité cette année car elles permettent aux attaquants d’élever les privilèges du système local ou de l’administrateur.

Les bogues du système d’exploitation et les vulnérabilités au niveau des applications comme celles-ci peuvent permettre aux attaquants d’élever les privilèges, de se déplacer latéralement à l’intérieur du réseau, d’exécuter du code arbitraire et de prendre complètement le contrôle des appareils, a déclaré Khare.

Leave a Comment