Chyba zabezpečení v xterm, která vede ke spuštění kódu při zpracování určitých řetězců

V emulátoru terminálu xterm byla identifikována chyba zabezpečení (CVE-2022-45063), která umožňuje spouštění příkazů shellu, když jsou v terminálu zpracovávány určité escape sekvence. K útoku v nejjednodušším případě stačí zobrazit obsah speciálně navrženého souboru, například pomocí utility cat, nebo vložit řádek ze schránky. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Problém je způsoben chybou při zpracování sekvence escape kódu 50 používané k nastavení nebo načtení možností písma. Pokud požadované písmo neexistuje, operace vrátí název písma zadaný v požadavku. Řídicí znaky nelze vložit přímo do názvu, ale vrácený řetězec může být ukončen sekvencí "^G", která v zsh, když je aktivní režim úpravy řádku ve stylu vi, způsobí provedení operace rozšíření seznamu, která může lze použít ke spouštění příkazů bez explicitního stisknutí klávesy Enter.

K úspěšnému zneužití zranitelnosti musí uživatel použít příkazový shell Zsh s editorem příkazového řádku (vi-cmd-mode) nastaveným na režim „vi“, který se obvykle v distribucích standardně nepoužívá. Problém se také neobjeví, když jsou nastavena nastavení xterm allowWindowOps=false nebo allowFontOps=false. Například allowFontOps=false je nastaveno v OpenBSD, Debianu a RHEL, ale není standardně použito v Arch Linuxu.

Soudě podle seznamu změn a prohlášení výzkumníka, který problém identifikoval, byla zranitelnost opravena ve verzi xterm 375, ale podle jiných zdrojů se zranitelnost nadále objevuje v xterm 375 z Arch Linuxu. Publikování oprav podle distribucí můžete sledovat na těchto stránkách: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Zdroj: opennet.ru

Přidat komentář