Une vulnérabilité a été identifiée dans GDM

Un chercheur en sécurité par GitHub dévoilé récemment vous avez identifié une vulnérabilité (CVE-2020-16125) dans GNOME Display Manager (GDM), qui est responsable de l'affichage de l'écran de connexion.

Combiné avec une autre vulnérabilité dans le service de suivi de compte (accounts-daemon), le problème permet au code de s'exécuter en tant que root.  La vulnérabilité est associée au lancement incorrect de l'utilitaire de configuration initiale s'il est impossible d'accéder au service de démon de compte via DBus.

À propos de la vulnérabilité

Un utilisateur non privilégié peut planter le processus du démon de comptes ou raccrocher, qu'est-ce qui créera les conditions pour que l'utilitaire gnome-initial-setup soit exécuté à partir de GDM, à travers lequel un nouvel utilisateur peut s'inscrire en tant que membre du groupe sudo, c'est-à-dire avoir la possibilité d'exécuter des programmes en tant que root.

En règle générale, GDM appelle gnome-initial-setup pour définir le premier utilisateur s'il n'y a pas de comptes dans le système. La vérification de l'existence des comptes se fait en contactant accounts-daemon. Si le processus spécifié échoue, GDM suppose que les comptes sont manquants et démarre le processus de configuration initiale.

Le chercheur a identifié deux façons de perturber le processus des comptes démons- La première (CVE-2020-16126) est due à une réinitialisation incorrecte des privilèges et la deuxième (CVE-2020-16127) erreur lors du traitement d'un fichier ".pam_environment".

En outre, une autre vulnérabilité a été trouvée dans les comptes démons (CVE-2018-14036) causée par des vérifications de chemin de fichier incorrectes et permettant la lecture du contenu de fichiers arbitraires sur le système.

Les vulnérabilités dans accounts-daemon sont causées par des modifications apportées par les développeurs Ubuntu et n'apparaissent pas dans le code principal des comptes-daemon du projet FreeDesktop et du paquet Debian.

Le problème CVE-2020-16127 est présent dans un correctif ajouté dans Ubuntu qui implémente la fonction is_in_pam_environment, qui lit le contenu du fichier .pam_environment à partir du répertoire personnel de l'utilisateur. Si vous placez un lien symbolique vers / dev / zero au lieu de ce fichier, le processus du démon de compte se bloque sur des opérations de lecture infinies et cesse de répondre aux demandes via DBus.

Il est inhabituel qu'une vulnérabilité dans un système d'exploitation moderne soit si facile à exploiter. À certaines occasions, j'ai écrit des milliers de lignes de code pour exploiter une vulnérabilité. 

La plupart des exploits modernes impliquent des astuces compliquées, telles que l'utilisation d'une vulnérabilité de corruption de mémoire pour usurper de faux objets dans le tas, ou le remplacement d'un fichier par un lien symbolique de précision microseconde pour exploiter une vulnérabilité TOCTOU. 

Donc, de nos jours, il est relativement rare de trouver une vulnérabilité qui ne nécessite pas de compétences en codage pour être exploitée. Je pense également que la vulnérabilité est facile à comprendre, même si vous n'avez aucune connaissance préalable du fonctionnement d'Ubuntu ou aucune expérience de la recherche sur la sécurité.

La vulnérabilité CVE-2020-16126 est causée par un autre correctif qui réinitialise les privilèges de l'utilisateur actuel lors du traitement de certains appels DBus (par exemple, org.freedesktop.Accounts.User.SetLanguage).

Le processus du démon de compte s'exécute normalement en tant que root, ce qui empêche un utilisateur normal d'envoyer des signaux.

Mais grâce au patch ajouté, les privilèges de processus peuvent être réinitialisés et l'utilisateur peut terminer ce processus en envoyant un signal. Pour effectuer une attaque, créez simplement les conditions de suppression des privilèges (RUID) et envoyez un signal SIGSEGV ou SIGSTOP au processus du démon de compte.

L'utilisateur termine la session graphique et accède à la console de texte (Ctrl-Alt-F1).
Une fois la session graphique terminée, GDM essaie d'afficher l'écran de connexion, mais se bloque en essayant d'obtenir une réponse du daemon de comptes.

Les signaux SIGSEGV et SIGCONT sont envoyés de la console au processus du démon de compte, provoquant son blocage.

Vous pouvez également envoyer des signaux avant de quitter la session graphique, mais vous devez le faire avec un délai pour avoir le temps de terminer la session et avant que le signal ne soit envoyé, GDM a eu le temps de démarrer.

La requête au démon de comptes dans GDM échoue et GDM appelle l'utilitaire gnome-initial-setup, dans l'interface duquel il suffit de créer un nouveau compte.

La vulnérabilité est corrigée dans GNOME 3.36.2 et 3.38.2. L'exploitation de la vulnérabilité a été confirmée dans Ubuntu et ses dérivés.

source: https://securitylab.github.com


Laisser un commentaire

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

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  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.