Zraniteľnosť v xterm vedúca k spusteniu kódu pri spracovaní určitých riadkov

V emulátore terminálu xterm bola identifikovaná chyba zabezpečenia (CVE-2022-45063), ktorá umožňuje spúšťanie príkazov shellu, keď sa v termináli spracovávajú určité únikové sekvencie. Na útok v najjednoduchšom prípade stačí zobraziť obsah špeciálne navrhnutého súboru, napríklad pomocou utility cat, alebo vložiť riadok zo schránky. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 mačka cve-2022-45063

Problém je spôsobený chybou pri manipulácii s únikovou sekvenciou kódu 50, ktorá sa používa na nastavenie alebo načítanie možností písma. Ak požadované písmo neexistuje, operácia vráti názov písma zadaný v požiadavke. Riadiace znaky nemôžete vložiť priamo do názvu, ale vrátený reťazec môže byť ukončený sekvenciou "^G", ktorá v zsh, keď je aktívny režim úpravy riadkov v štýle vi, spôsobí vykonanie operácie rozšírenia zoznamu, ktorá môže použiť na spustenie príkazov bez explicitného stlačenia klávesu Enter.

Na úspešné využitie tejto zraniteľnosti musí používateľ použiť príkazový shell Zsh s editorom príkazového riadka (vi-cmd-mode) nastaveným na režim „vi“, ktorý sa zvyčajne v distribúciách štandardne nepoužíva. Problém sa neobjaví ani vtedy, keď sú nastavené nastavenia xterm allowWindowOps=false alebo allowFontOps=false. Napríklad allowFontOps=false je nastavené v OpenBSD, Debiane a RHEL, ale v Arch Linuxe sa štandardne nepoužíva.

Súdiac podľa zoznamu zmien a vyjadrenia výskumníka, ktorý problém identifikoval, bola zraniteľnosť opravená vo vydaní xterm 375, ale podľa iných zdrojov sa táto zraniteľnosť naďalej objavuje v xterm 375 z Arch Linuxu. Publikovanie opráv podľa distribúcií môžete sledovať na týchto stránkach: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Zdroj: opennet.ru

Pridať komentár