Plusieurs vulnérabilités trouvées dans le gestionnaire de raccourcis clavier de Wayland

Il y a quelques jours, on a appris que un certain nombre de vulnérabilités ont été trouvées dans swhkd (Simple Wayland HotKey Daemon) causé par une mauvaise gestion des fichiers temporaires, des options de ligne de commande et des sockets unix.

Le programme est écrit en Rust et gère les raccourcis clavier dans les environnements basés sur le protocole Wayland (un analogue compatible avec les fichiers de configuration du processus sxhkd utilisé dans les environnements basés sur X11). Le package comprend un processus swhks non privilégié qui exécute des actions pour les raccourcis clavier et un processus d'arrière-plan swhkd qui s'exécute en tant que root et interagit avec les périphériques d'entrée au niveau de l'API uinput. Pour organiser l'interaction entre swhks et swhkd, un socket Unix est utilisé.

Les règles de Polkit permettent à tout utilisateur local d'exécuter le processus /usr/bin/swhkd en tant que root et de lui transmettre des paramètres arbitraires.

L'intégration du package RPM soumis pour openSUSE Tumbleweed contenait des règles Polkit inhabituelles dans le fichier de définition qui a nécessité un examen par l'équipe de sécurité SUSE.

À la suite de l'examen, plusieurs problèmes de sécurité ont été identifiés. Les problèmes individuels sont décrits dans le rapport détaillé ci-dessous.

Des vulnérabilités identifiées, sont mentionnés :

CVE-2022-27815

Cette vulnérabilité permet d'enregistrer un PID de processus dans un fichier avec un nom prévisible et dans un répertoire accessible en écriture pour les autres utilisateurs (/tmp/swhkd.pid), où n'importe quel utilisateur peut créer un fichier /tmp/swhkd.pid et y mettre le pid d'un processus existant, ce qui rendra impossible le démarrage de swhkd.

En l'absence de protection contre la création de liens symboliques dans /tmp, la vulnérabilité peut être utilisée pour créer ou écraser des fichiers dans n'importe quel répertoire sur le système (le PID est écrit dans le fichier) ou déterminer le contenu de n'importe quel fichier sur le système (swhkd sort tout le contenu du fichier PID sur stdout). Il convient de noter que dans le correctif publié, le fichier PID n'a pas été déplacé vers le répertoire /run, mais vers le répertoire /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), où il n'appartient pas non plus .

CVE-2022-27814

Cette vulnérabilité vous permet de manipuler l'option de ligne de commande "-c" pour spécifier un fichier de configuration peut déterminer l'existence de n'importe quel fichier sur le système.

Comme dans le cas de la première vulnérabilité, la résolution du problème est déroutante : la résolution du problème se résume au fait que l'utilitaire externe "cat" ('Command::new("/bin/cat").arg(path) est maintenant lancé pour lire le fichier de configuration.output()').

CVE-2022-27819

Ce problème c'est aussi lié à l'utilisation de l'option "-c", qui charge et analyse l'intégralité du fichier de configuration sans vérifier la taille et le type du fichier.

Par exemple, pour provoquer un déni de service dû à un manque de mémoire libre et à la création d'E/S parasites, vous pouvez spécifier un périphérique bloc au démarrage ("pkexec /usr/bin/swhkd -d -c /dev/sda") ou un périphérique de caractères qui émet un flux infini de données.

Le problème a été résolu en réinitialisant les privilèges avant d'ouvrir le fichier, mais la solution n'était pas complète car seul l'ID utilisateur (UID) est réinitialisé, mais l'ID de groupe (GID) reste le même.

CVE-2022-27818

Cette vulnérabilité permet d'utiliser un fichier /tmp/swhkd.sock pour créer un socket Unix, qui est créé dans un répertoire public accessible en écriture, causant des problèmes similaires à la première vulnérabilité (n'importe quel utilisateur peut créer /tmp/swhkd.sock et générer ou intercepter des événements de pression de touche).

CVE-2022-27817

Dans cette vulnérabilité, les événements d'entrée sont reçus de tous les appareils et dans toutes les sessions, c'est-à-dire qu'un utilisateur dans une autre session Wayland ou console peut intercepter des événements lorsque d'autres utilisateurs appuient sur des raccourcis clavier.

CVE-2022-27816

Le processus swhks, comme swhkd, utilise le fichier PID /tmp/swhks.pid dans le répertoire publiquement inscriptible /tmp. Le problème est similaire à la première vulnérabilité, mais pas aussi dangereux, car swhks s'exécute sous un utilisateur non privilégié.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter le détails dans le lien suivant.


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.