
Analyse technique et preuve de concept pour CVE-2025-6019, une vulnérabilité d'élévation de privilèges locaux dans libblockdev et udisks2, permettant un accès root via des images XFS conçues.
CVE-2025-6019 est une vulnérabilité d'élévation de privilèges locaux (LPE) découverte dans la bibliothèque libblockdev, qui interagit avec le démon udisks2 et Polkit.
Un attaquant local disposant de la permission Polkit allow_active (généralement un utilisateur manipulant physiquement l'ordinateur) peut exploiter la manière dont libblockdev interagit avec le démon udisks. L'attaquant peut créer une image XFS malveillante contenant un shell SUID-root et tromper udisks pour qu'il monte cette image sans les drapeaux de sécurité tels que et . Cela permet à l'attaquant d'exécuter le shell SUID-root et d'obtenir les pleins privilèges root sur le système.
nosuidnodevL'ensemble du flux d'attaque peut être divisé en trois phases : préparation, transmission et déclenchement. L'image malveillante peut être préparée à l'avance sur n'importe quel système.
Phase de préparation (sur la propre machine de l'attaquant) : L'attaquant utilise des outils Linux standard (par exemple mkfs.xfs) pour créer une image du système de fichiers XFS. À l'intérieur de cette image, ils placent un programme malveillant précompilé avec des privilèges SUID (par exemple un shell backdoor). Cette image elle-même est une « charge utile (payload) ».
Phase de transmission : L'attaquant doit transmettre cette image malveillante préparée à la machine cible. Il existe plusieurs méthodes, par exemple en téléchargeant via wget, à l'aide d'une clé USB, ou en exploitant d'autres vulnérabilités sur la machine cible pour télécharger le fichier.
Phase de déclenchement (sur la machine cible) : L'étape centrale de l'attaque se produit sur la machine cible. L'attaquant exploite la vulnérabilité CVE-2025-6019 pour tromper le service udisks2 sur la machine cible afin qu'il monte (mount) cette image malveillante. En raison de la vulnérabilité, udisks2 ne rajoute pas les drapeaux de sécurité nécessaires (comme nosuid) lors du montage.
Phase d'élévation de privilèges : Une fois l'image montée de manière non sécurisée, le programme malveillant avec privilège SUID à l'intérieur devient exécutable, et lors de son exécution, il hérite des privilèges root, permettant ainsi à l'attaquant de réussir.
Conclusion : L'image n'est qu'un « conteneur » contenant un programme malveillant. L'endroit où elle est créée n'a pas d'importance. Ce qui importe, c'est la manière dont le système cible « traite » ce conteneur.
Le score de base CVSS 3.1 de cette vulnérabilité est de 7.0, ce qui correspond à une gravité élevée.
L'exploitation réussie de cette vulnérabilité pourrait permettre à un attaquant de prendre le contrôle total du système affecté.
La plupart des distributions Linux utilisant les services libblockdev et udisks2 sont affectées, notamment Ubuntu, Debian, Fedora et openSUSE.
allow_active de la règle Polkit org.freedesktop.udisks2.modify-device de yes à auth_admin.Cette vulnérabilité peut parfois être combinée avec une autre vulnérabilité, CVE-2025-6018, qui peut être utilisée dans certaines distributions pour obtenir à distance la permission allow_active.
Cette vulnérabilité met également en évidence comment les bogues Linux peuvent affecter les véhicules définis par logiciel utilisant Automotive Grade Linux (AGL).