Ranljivost v xtermu vodi do izvajanja kode pri obdelavi določenih vrstic

V terminalskem emulatorju xterm je bila ugotovljena ranljivost (CVE-2022-45063), ki omogoča izvajanje lupinskih ukazov, ko se določena ubežna zaporedja obdelajo v terminalu. Za napad v najpreprostejšem primeru je dovolj, da prikažete vsebino posebej oblikovane datoteke, na primer s pripomočkom cat, ali prilepite vrstico iz odložišča. printf "\e]50;i\$(dotaknite se /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Težavo povzroča napaka pri obravnavanju ubežnega zaporedja kode 50, ki se uporablja za nastavitev ali pridobivanje možnosti pisave. Če zahtevana pisava ne obstaja, operacija vrne ime pisave, navedeno v zahtevi. V ime ne morete neposredno vstaviti kontrolnih znakov, vrnjeni niz pa se lahko konča z zaporedjem "^G", kar v zsh, ko je aktiven način urejanja vrstic v slogu vi, povzroči izvedbo operacije razširitve seznama, ki lahko se uporablja za izvajanje ukazov brez izrecnega pritiska tipke Enter.

Za uspešno izkoriščanje ranljivosti mora uporabnik uporabiti ukazno lupino Zsh z urejevalnikom ukazne vrstice (vi-cmd-mode), nastavljenim na način »vi«, ki se običajno ne uporablja privzeto v distribucijah. Težava se tudi ne pojavi, ko so nastavljene nastavitve xterm allowWindowOps=false ali allowFontOps=false. Na primer, allowFontOps=false je nastavljen v OpenBSD, Debian in RHEL, vendar ni privzeto uporabljen v Arch Linuxu.

Sodeč po seznamu sprememb in izjavi raziskovalca, ki je odkril težavo, je bila ranljivost odpravljena v izdaji xterm 375, vendar po drugih virih se ranljivost še naprej pojavlja v xterm 375 iz Arch Linuxa. Objavi popravkov po distribucijah lahko sledite na teh straneh: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Vir: opennet.ru

Dodaj komentar