Avez-vous été victime de bugs cachés sous Linux ? Découvrez le correctif qui met fin à 5 ans de menace !
Imaginez-vous, utilisateur de Linux, confronté à des bugs sournois pendant des années. Dans cet article, plongez au cœur de cette problématique technique et découvrez enfin le correctif salvateur mettant un terme à 5 ans de menace.
Si vous êtes un utilisateur de Linux, vous avez peut-être rencontré des bogues qui affectent les performances ou la sécurité de votre système. Aujourd’hui, nous mettons en lumière un correctif majeur destiné à résoudre une vulnérabilité qui sévit depuis cinq ans.
Identification du bogue
Avant la clôture de la fenêtre de fusion de Linux 6.11, Christian Brauner, ingénieur chez Microsoft, a soumis deux correctifs pour le VFS. L’un des correctifs est particulièrement crucial car il vise un bogue de cinq ans susceptible de provoquer une corruption des données, des problèmes de sécurité ou même un plantage du noyau.
Découverte et impact
Après la découverte de ce bogue par Christian Brauner, Seth Forshee de DigitalOcean s’est attelé à corriger une situation où il était possible de monter des systèmes de fichiers avec un espace de noms utilisateur non initial. Ce problème pouvait causer de graves problèmes de sécurité et des corruptions de disque, bien que sa portée soit limitée aux utilisateurs privilégiés.
Origine du problème
Ce bogue a été introduit par une correction en 2018 et est présent dans le noyau principal de Linux depuis février 2019. Le correctif est donc prévu pour une rétroportation vers les séries de noyaux Linux stables actuellement supportées.
Explication technique
Dans la demande de tirage des correctifs VFS, Brauner a expliqué le problème en détail :
« J’ai remarqué qu’il est possible pour un utilisateur privilégié de monter la plupart des systèmes de fichiers avec un espace de noms utilisateur non initial dans sb->s_user_ns. Lors de l’appel de fsopen() dans un espace de noms non initial, l’espace de noms de l’appelant est enregistré dans fs_context->user_ns. Si le descripteur de fichier retourné est ensuite passé à un processus privilégié dans init_user_ns, ce processus peut appeler fsconfig(fd_fs, FSCONFIG_CMD_CREATE*), créant un nouveau superbloc avec sb->s_user_ns défini sur l’espace de noms du processus ayant appelé fsopen().
Une solution en quelques lignes de code
C’est un correctif de 11 lignes (en réalité, trois lignes de code, le reste étant des commentaires) qui permet de prévenir ce problème. Le code est maintenant en attente d’une intégration dans le noyau principal et ensuite d’une rétroportation dans les séries de noyaux Linux stables.
Commentaires
Laisser un commentaire