
c'est un dépôt qui fait face à un problème d'escalade de privilèges dans son système linux et une actualité concernant le problème de "Dirty pipeline"
Max Kellermann, un développeur chez CM4all (une société allemande d'hébergement web), l'a découvert début 2022, mais pas en recherchant des vulnérabilités. Il débogguait lorsqu'il a appris que le client était mécontent du fait que les journaux sur leur serveur se corrompaient spontanément. Kellermann a passé des mois à en tracer l'origine. Son travail l'a finalement mené à une condition profonde dans la façon dont le noyau Linux gère les tubes (pipes) et le cache de pages. Il a réalisé que le bogue qu'il avait trouvé pour expliquer la corruption des journaux était en réalité quelque chose de bien plus grave — une vulnérabilité d'élévation de privilèges complète (une vulnérabilité d'élévation de privilèges complète est une faille de sécurité critique qui permet à un attaquant disposant d'un accès de bas niveau — comme un utilisateur standard, un invité ou une application non privilégiée — d'obtenir un contrôle administratif, superutilisateur ou de niveau root sur un système. Cela signifie que l'attaquant contourne toutes les frontières de sécurité prévues, lui accordant un contrôle total pour modifier des fichiers système, installer des logiciels, voler des données ou supprimer des fichiers). Il l'a divulguée de manière responsable à l'équipe du noyau Linux et à Linus Torvalds lui-même. Elle a été corrigée en quelques jours. Le vrai problème est que — lorsque splice() transférait des données dans un tube, il oubliait d'effacer ce drapeau sur le tampon de destination. Ainsi, la page splice'd (qui pointe directement dans le cache de pages en lecture seule d'un fichier) avait toujours CAN_MERGE défini. Maintenant, si vous écrivez dans ce tube, le noyau voit CAN_MERGE, suppose que la page est inscriptible, et fusionne vos données directement dans le cache de pages — qui est le contenu en mémoire du fichier —> sans aucune vérification de permission. Résultat : vous pouvez écraser le contenu de tout fichier lisible par vous, y compris les binaires root SUID (set user ID) comme su, passwd, sudo. Pourquoi le bogue était-il si important ? Quelques raisons :