Deux vulnérabilités ont été trouvées dans Snap et ont permis d'exécuter du code en tant que root

Qualys dévoilé les nouvelles que j'identifie deux vulnérabilités (CVE-2021-44731 et CVE-2021-44730) dans l'utilitaire snap-confine, envoyé avec l'indicateur root SUID et appelé par le processus snapd pour générer un environnement exécutable pour les applications distribuées dans des packages snap.

Dans le billet de blog, il est mentionné que des vulnérabilités permettent à un utilisateur local non privilégié d'exécuter du code en tant que root dans le système.

La première vulnérabilité permet une attaque par manipulation de lien physique, mais nécessite la désactivation de la protection des liens physiques du système (en définissant sysctl fs.protected_hardlinks sur 0).

Le problème c'est dû à une mauvaise vérification de l'emplacement des exécutables des utilitaires snap-update-ns et snap-discard-ns qui s'exécutent en tant que root. Le chemin vers ces fichiers a été calculé dans la fonction sc_open_snapd_tool() en fonction de son propre chemin depuis /proc/self/exe, vous permettant de créer un lien dur à confiner dans votre répertoire et de mettre vos options sur snap-update-ns et snap -discard-ns dans ce répertoire. Lorsqu'il est lancé à partir d'un lien physique, snap-confine en tant que root exécutera les fichiers snap-update-ns et snap-discard-ns remplacés par l'attaquant à partir du répertoire actuel.

L'exploitation réussie de cette vulnérabilité permet à tout utilisateur non privilégié d'obtenir des privilèges root sur l'hôte vulnérable. Les chercheurs en sécurité de Qualys ont pu vérifier indépendamment la vulnérabilité, développer un exploit et obtenir des privilèges root complets sur les installations Ubuntu par défaut.

Dès que l'équipe de recherche de Qualys a confirmé la vulnérabilité, nous nous sommes engagés dans une divulgation responsable de la vulnérabilité et nous nous sommes coordonnés avec les fournisseurs et les distributions open source pour annoncer cette vulnérabilité nouvellement découverte.

La deuxième vulnérabilité est causée par une condition de concurrence et peut être exploité dans la configuration de bureau Ubuntu par défaut. Pour que l'exploit fonctionne avec succès sur Ubuntu Server, vous devez sélectionner l'un des packages de la section "Featured Server Snaps" lors de l'installation.

condition de course manifestes dans la fonction setup_private_mount() appelé lors de la préparation de l'espace de noms de point de montage pour le package instantané. Cette fonction crée un répertoire temporaire "/tmp/snap.$SNAP_NAME/tmp" ou utilise un répertoire existant pour y lier et monter les répertoires du package snap.

Comme le nom du répertoire temporaire est prévisible, un attaquant peut changer son contenu en un lien symbolique après avoir vérifié le propriétaire, mais avant d'appeler le système de montage. Par exemple, vous pouvez créer un lien symbolique "/tmp/snap.lxd/tmp" dans le répertoire /tmp/snap.lxd qui pointe vers un répertoire arbitraire et l'appel mount() suivra le lien symbolique et montera le répertoire dans l'espace de noms.

De même, vous pouvez monter son contenu dans /var/lib et, en remplaçant /var/lib/snapd/mount/snap.snap-store.user-fstab, organiser le montage de votre répertoire /etc dans le composant logiciel enfichable de l'espace de noms du package pour charger votre bibliothèque depuis l'accès root en remplaçant /etc/ld.so.preload.

On observe que créer un exploit s'est avéré être une tâche non triviale, puisque l'utilitaire snap-confine est écrit à l'aide de techniques de programmation sécurisées (snapd est écrit en Go, mais C est utilisé pour snap-confine), dispose d'une protection basée sur les profils AppArmor, filtre les appels système en fonction du mécanisme seccomp et utilise un espace de noms de montage pour l'isolement.

Cependant, les chercheurs ont pu préparer un exploit fonctionnel pour obtenir un accès root sur le système. Le code d'exploitation sera publié quelques semaines après que les utilisateurs auront installé les mises à jour fournies.

Enfin, il convient de mentionner queLes problèmes ont été résolus dans la mise à jour du package snapd pour les versions 21.10, 20.04 et 18.04 d'Ubuntu.

En plus des autres distributions qui utilisent Snap, Snapd 2.54.3 a été publié, qui, en plus des problèmes ci-dessus, corrige une autre vulnérabilité (CVE-2021-4120), qui permet, lors de l'installation de packages de plug-ins spécialement conçus, remplacer les règles AppArmor arbitraires et contourner les restrictions d'accès définies pour le package.

Si vous intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.