Détection d'une vulnérabilité dans xterm qui conduit à l'exécution de code

Vulnérabilité

Si elles sont exploitées, ces failles peuvent permettre aux attaquants d'obtenir un accès non autorisé à des informations sensibles ou de causer des problèmes en général.

Récemment, la nouvelle a annoncé que une vulnérabilité a été trouvée dans l'émulateur de terminal xterm (déjà catalogué sous CVE-2022-45063), le problème permet d'exécuter des commandes shell lorsque certaines séquences d'échappement sont traitées dans le terminal.

À propos du problème, il est mentionné que c'est dû à une erreur dans le traitement du code d'échappement 50 qui est utilisé pour définir ou obtenir des options de police. Si la police demandée n'existe pas, l'opération renvoie le nom de la police spécifiée dans la requête.

Le problème est dans la séquence OSC 50, qui consiste à configurer et à interroger la source. Si une source donnée n'existe pas, elle n'est pas définie, mais une requête renverra le nom qui a été défini. Les caractères de contrôle ne peuvent pas être inclus, mais la chaîne de réponse peut se terminer par ^G. Est nous donne essentiellement une primitive pour renvoyer le texte au terminal et se terminant par ^G.

Les caractères de contrôle ne peuvent pas être insérés directement dans le nom, mais la chaîne renvoyée peut se terminer par la séquence "^G", qui dans zsh, lorsque le mode d'édition de ligne de style vi est actif, provoque l'exécution d'une opération d'expansion de liste, qui peut être utilisée pour exécuter des commandes sans appuyer explicitement sur la touche Entrée.

Pour une attaque dans le cas le plus simple, il suffit d'afficher le contenu d'un fichier spécialement conçu à l'écran, par exemple à l'aide de l'utilitaire cat, ou collez une ligne depuis le presse-papiers.

Debian, Red Hat et d'autres désactivent les opérations de police par défaut , mais les utilisateurs peuvent les réactiver via un menu d'options ou de configuration. De plus, xterm en amont fait ne les désactive pas par défaut, donc certaines distributions incluent un paramètre par défaut vulnérable.

Pour exploiter avec succès la vulnérabilité, l'utilisateur doit utiliser le shell Zsh avec l'éditeur de ligne de commande (vi-cmd-mode) commuté en mode "vi", qui n'est généralement pas utilisé par défaut dans les distributions.

En gros, il nous faut :
zsh
mode d'édition de ligne actif dans le style vi
copier le texte du cheval de Troie dans le presse-papiers
collez-le dans zsh

Cela peut être fait automatiquement, de nombreux sites modifient le texte lorsqu'il est copié dans le presse-papiers. Je n'utilise donc que le tampon de sélection, auquel les navigateurs n'ont pas accès. Ce n'est que dans gtk3 et dans ff en particulier qu'ils cassent constamment pour une raison quelconque, c'est épuisant.

Le problème n'apparaît pas non plus lorsque xterm est défini sur allowWindowOps=false ou allowFontOps=false. Par exemple, la configuration allowFontOps=false il est défini sur OpenBSD, Debian et RHEL, mais n'est pas appliqué par défaut sur Arch Linux.

Selon le journal des modifications et la déclaration du chercheur qui a identifié le problème, la vulnérabilité corrigé dans la version xterm 375, mais selon d'autres sources, la vulnérabilité continue de se manifester dans le xterm 375 d'Arch Linux.

Cela signifie que pour exploiter cette vulnérabilité, l'utilisateur doit être
en utilisant Zsh en mode d'édition de ligne vi (généralement via $EDITOR qui a "vi" dans
son). Bien que quelque peu obscur, ce n'est pas totalement inconnu.
et configuration

Dans cette configuration, quelque chose comme :
printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063
cat cve-2022-45063 # ou un autre moyen de le remettre à la victime

Enfin, comme toujours, il est recommandé aux utilisateurs des systèmes concernés de maintenir leurs systèmes à jour, car comme vous le saurez lorsque des vulnérabilités de sécurité seront connues, les développeurs doivent corriger ces bogues, car une grande partie de la façon dont ces bogues peuvent être exploités est divulguée.

Il est important de mentionner que les opérations de police ne sont pas autorisées dans les paramètres par défaut de xterme de certaines distributions Linux, toutes les distributions ne sont donc pas sujettes à ce bogue. Pour ceux qui souhaitent suivre la publication des corrections par distributions, ils peuvent le faire sur ces pages : DebianRHELFedoraSUSEUbuntuArch LinuxOpenBSDFreeBSDNetBSD.

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.