
Analyse technique de CVE-2021-3493, une vulnérabilité d'élévation de privilèges locale OverlayFS sur Ubuntu, incluant l'explication de la cause racine et les versions concernées.
En résumé
Découvrez comment une vulnérabilité dans OverlayFS permet aux utilisateurs locaux sous Ubuntu d'obtenir les privilèges root.
Résumé de la vulnérabilité
Un problème spécifique à Ubuntu dans le système de fichiers overlayfs du noyau Linux, où il ne validait pas correctement l'application des capacités du système de fichiers par rapport aux espaces de noms utilisateur. Un attaquant local pouvait utiliser cela pour obtenir des privilèges élevés, en raison d'un correctif appliqué dans Ubuntu pour permettre les montages overlayfs non privilégiés.
CVE-2021-3493
Crédit
Un chercheur en sécurité indépendant a signalé cette vulnérabilité au programme SSD Secure Disclosure.
Versions concernées
Ubuntu 20.10
Ubuntu 20.04 LTS
Ubuntu 18.04 LTS
Ubuntu 16.04 LTS
Ubuntu 14.04 ESM
Réponse du fournisseur
« Nous avons publié des avis de sécurité pour ce problème aujourd'hui dans
https://ubuntu.com/security/notices/USN-4915-1 https://ubuntu.com/security/notices/USN-4916-1 https://ubuntu.com/security/notices/USN-4917-1
tout en rendant le problème public dans notre suivi CVE :
https://ubuntu.com/security/CVE-2021-3493
Voici le contenu du message envoyé à la liste oss-security : https://www.openwall.com/lists/oss-security/2021/04/16/1
Analyse de la vulnérabilité
Linux supporte les capacités de fichiers stockées dans les attributs étendus des fichiers, qui fonctionnent de manière similaire au bit setuid, mais peuvent être plus granulaires. Une procédure simplifiée pour définir les capacités de fichiers en pseudo-code ressemble à ceci : setxattr(...): if cap_convert_nscap(...) is not OK: then fail vfs_setxattr(...)
L'appel important est cap_convert_nscap, qui vérifie les permissions par rapport aux espaces de noms.
Si nous définissons les capacités de fichiers depuis notre propre espace de noms et sur notre propre montage, il n'y a pas de problème et nous avons la permission de le faire. Le problème est que lorsqu'OverlayFS transmet cette opération au système de fichiers sous-jacent, il appelle seulement vfs_setxattr et ignore les vérifications dans cap_convert_nscap.
Cela permet de définir des capacités arbitraires sur des fichiers dans l'espace de noms/montage extérieur, où elles seront également appliquées lors de l'exécution.
Dans Linux 5.11, l'appel à cap_convert_nscap a été déplacé dans vfs_setxattr, de sorte qu'il n'est plus vulnérable.