I terminalemulatoren xterm er der identificeret en sårbarhed (CVE-2022-45063), der muliggør udførelse af shell-kommandoer, når bestemte escape-sekvenser behandles i terminalen. For et angreb er det i enkleste tilfælde nok at vise indholdet af en specielt formateret fil på skærmen, for eksempel ved hjælp af cat-værktøjet, eller indsætte en stræk fra udklipsholderen. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063
Problemet skyldes en fejl i behandlingen af escape-sekvenser med kode 50, der bruges til at indstille eller hente skrifttypeparameterne. Hvis den anmodede skrifttype ikke findes, returnerer operationen det angivne navn på skrifttypen. Kontroltegn kan ikke indsættes direkte i navnet, men den returnerede streng kan afsluttes med sekvensen "^G", som i zsh, når redigeringsstanden i vi-stil er aktiv, kan føre til udførelse af en listeudvidelse, hvilket kan bruges til at udføre kommandoer uden at trykke på Enter.
For at udnytte sårbarheden succesfuldt skal brugeren bruge shell-kommandoen Zsh med kommandoeditoren i "vi"-tilstand (vi-cmd-mode), som normalt ikke er aktiveret som standard i distributioner. Problemet optræder heller ikke, når xterm-konfigurationerne allowWindowOps=false eller allowFontOps=false anvendes. For eksempel er indstillingen allowFontOps=false anvendt i OpenBSD, Debian og RHEL, men anvendes ikke som standard i Arch Linux.
Ifølge ændringsloggen og udtalelsen fra den forsker, der identificerede problemet, er sårbarheden blevet rettet i xterm version 375, men ifølge andre oplysninger fortsætter sårbarheden med at optræde i xterm 375 fra Arch Linux. Man kan følge offentliggørelsen af opdateringer fra distributionerne på disse sider: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.
Kilde: opennet.ru
