Ang kahinaan sa xterm na humahantong sa pagpapatupad ng code kapag nagpoproseso ng ilang partikular na string

Natukoy ang isang kahinaan (CVE-2022-45063) sa xterm terminal emulator, na nagbibigay-daan sa mga shell command na maisagawa kapag ang ilang partikular na escape sequence ay naproseso sa terminal. Para sa isang pag-atake sa pinakasimpleng kaso, sapat na upang ipakita ang mga nilalaman ng isang espesyal na idinisenyong file, halimbawa, gamit ang cat utility, o i-paste ang isang linya mula sa clipboard. printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

Ang problema ay sanhi ng isang error sa paghawak ng code 50 escape sequence na ginamit upang itakda o kunin ang mga pagpipilian sa font. Kung wala ang hiniling na font, ibabalik ng operasyon ang pangalan ng font na tinukoy sa kahilingan. Hindi ka maaaring direktang magpasok ng mga control character sa pangalan, ngunit ang ibinalik na string ay maaaring wakasan gamit ang sequence na "^G", na sa zsh, kapag aktibo ang vi-style line editing mode, nagiging sanhi ng isang pagpapalawak ng listahan ng operasyon upang maisagawa, na maaaring gamitin upang magpatakbo ng mga utos nang hindi tahasang pinindot ang Enter key.

Upang matagumpay na samantalahin ang kahinaan, dapat gamitin ng user ang Zsh command shell na may command line editor (vi-cmd-mode) na nakatakda sa "vi" mode, na kadalasang hindi ginagamit bilang default sa mga distribusyon. Ang problema ay hindi rin lilitaw kapag ang xterm settings allowWindowOps=false o allowFontOps=false ay nakatakda. Halimbawa, ang allowFontOps=false ay nakatakda sa OpenBSD, Debian at RHEL, ngunit hindi inilapat bilang default sa Arch Linux.

Sa paghusga sa listahan ng mga pagbabago at ang pahayag ng mananaliksik na natukoy ang problema, ang kahinaan ay naayos sa xterm 375 release, ngunit ayon sa iba pang mga mapagkukunan, ang kahinaan ay patuloy na lumilitaw sa xterm 375 mula sa Arch Linux. Maaari mong subaybayan ang paglalathala ng mga pag-aayos sa pamamagitan ng mga pamamahagi sa mga pahinang ito: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.

Pinagmulan: opennet.ru

Magdagdag ng komento