La vulnérabilité “Dirty Pipe” affecte le noyau Linux

La vulnérabilité

Lundi, un chercheur en cybersécurité a publié les détails d’une vulnérabilité Linux qui permet à un attaquant d’écraser les 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 quelques mois pour comprendre ce qui se passait réellement.

publicité

Kellermann explique que la vulnérabilité affecte le noyau Linux 5.8 et les versions ultérieures, mais qu’elle a été corrigée dans les versions 5.16.11, 5.15.25 et 5.10.102.

“Tout a commencé il y a un an avec un ticket de support concernant des fichiers corrompus. Un client se plaignait que les journaux d’accès qu’il téléchargeait ne pouvaient pas être décompressés. Et effectivement, il y avait un fichier journal corrompu sur l’un des serveurs de journaux ; il pouvait être décompressé, mais gzip signalait une erreur CRC (Contrôle de redondance cyclique). Je ne pouvais pas expliquer pourquoi il était corrompu, mais j’ai supposé que le processus de fractionnement nocturne avait planté et avait laissé un fichier corrompu derrière lui. J’ai corrigé le CRC du fichier manuellement, j’ai fermé le ticket et j’ai vite oublié le problème”, a déclaré Kellermann.

“Des mois plus tard, cela s’est reproduit, 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 de corruption surprenant. Un modèle est apparu.”

Kellermann a poursuivi en montrant comment il a découvert le problème et comment quelqu’un pourrait potentiellement l’exploiter. Il a d’abord supposé que le bug n’était exploitable que lorsqu’un processus privilégié écrit le fichier, et que cela dépendait du timing.

Mais il a découvert par la suite qu’il était possible d’écraser le cache de la page même en l’absence de rédacteurs, sans contrainte de timing, “à des positions (presque) arbitraires avec des données arbitraires.”

Pour exploiter la vulnérabilité, l’attaquant doit avoir les droits 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é, il faut : Créer un tube, le remplir de données arbitraires (pour activer l’indicateur PIPE_BUF_FLAG_CAN_MERGE dans toutes les entrées de l’anneau), vider le tube (en laissant l’indicateur activé dans toutes les instances de struct pipe_buffer sur l’anneau struct pipe_inode_info), insérer les données du fichier cible (ouvert avec O_RDONLY) dans le tube juste avant le décalage cible et écrire des données arbitraires dans le tube “, explique-t-il.

“Ces données écraseront la page du fichier 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 ne fonctionne pas seulement sans droits d’écriture, mais aussi avec des fichiers immuables, sur des snapshots btrfs en lecture seule et sur des montages en lecture seule (y compris les montages de CD-ROM). Cela est dû au fait que le cache de pages est toujours accessible en écriture (par le noyau), et que l’écriture sur un tube ne vérifie jamais les permissions.”

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

Le rapport de bug, l’exploit et le correctif ont été envoyés à la Linux kernel security team par Kellermann le 20 février. Le bug a été reproduit sur le Google Pixel 6 et un rapport de bug a été envoyé à l’équipe de sécurité Android.

Linux a publié des correctifs (5.16.11, 5.15.25, 5.10.102) le 23 février et Google a intégré le correctif du bug dans le noyau Android le 24 février.

Kellermann et d’autres experts ont comparé la vulnérabilité à la CVE-2016-5195 “Dirty Cow” mais ont déclaré qu’elle est encore plus facile à exploiter.

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

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

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

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

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

Source : “ZDNet.com”

Leave a Reply

Discover more from Ultimatepocket

Subscribe now to keep reading and get access to the full archive.

Continue reading