Une vulnérabilité a été identifiée dans l'émulateur de terminal xterm (CVE-2022-45063) permettant l'exécution de commandes shell lors du traitement de certaines séquences d'échappement dans le terminal. Pour une attaque, il suffit dans le cas le plus simple d'afficher le contenu d'un fichier spécialement formaté, par exemple en utilisant l'outil cat, ou d'insérer une ligne à partir du presse-papiers. printf «\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a» > cve-2022-45063 cat cve-2022-45063
Le problème est causé par une erreur dans le traitement de la séquence d'échappement avec le code 50, utilisée pour définir ou obtenir les paramètres de police. Si la police demandée n'existe pas, l'opération renvoie le nom de police spécifié dans la demande. Il n'est pas possible d'insérer directement des caractères de contrôle dans le nom, mais la chaîne renvoyée peut être terminée par la séquence «^G», qui dans zsh, lorsque le mode d'édition de ligne de style vi est actif, déclenche l'opération d'ouverture de liste, ce qui peut être utilisé pour lancer des commandes sans appuyer explicitement sur la touche Entrée.
Pour exploiter avec succès la vulnérabilité, l'utilisateur doit utiliser le shell de commande Zsh avec l'éditeur de ligne de commande en mode «vi» (vi-cmd-mode), qui n'est généralement pas utilisé par défaut dans les distributions. Le problème ne se manifeste pas non plus lorsque les paramètres allowWindowOps=false ou allowFontOps=false sont définis dans xterm. Par exemple, le paramètre allowFontOps=false est appliqué dans OpenBSD, Debian et RHEL, mais n'est pas appliqué par défaut dans Arch Linux.
D'après le changelog et la déclaration du chercheur ayant identifié le problème, la vulnérabilité a été corrigée dans la version xterm 375, mais selon d'autres informations, la vulnérabilité continue de se manifester dans xterm 375 de la distribution Arch Linux. Vous pouvez suivre la publication des correctifs par les distributions sur ces pages : Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.
Source : opennet.ru
