В терминалния емулатор xterm е открита уязвимост (CVE-2022-45063), която позволява изпълнение на shell команди при обработка на определени escape последователности в терминала. За атаката в най-простия случай е достатъчно да се изведе на екрана съдържанието на специално оформен файл, например, чрез инструмента cat, или да се постави ред от буфера за обмен. printf "\e]50;i\$(touch \/tmp\/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063
Проблемът е предизвикан от грешка при обработката на escape последователността с код 50, използвана за задаване или получаване на параметри на шрифта. Ако поисканият шрифт не съществува, операцията връща зададеното в запитването име на шрифта. Не може да се вмъкват управляващи символи в името, но връщаната низ може да бъде завършена с последователността «^G», която в zsh при активен режим на редактиране на редове стил vi води до изпълнение на операцията за разкриване на списък, което може да се използва за стартиране на команди без явно натискане на клавиш Enter.
За успешна експлоатация на уязвимостта потребителят трябва да използва командната обвивка Zsh с преведен в режим «vi» редактор на командния ред (vi-cmd-mode), който обикновено не се използва по подразбиране в дистрибутивите. Проблемът не се проявява също при задаване на xterm настройки allowWindowOps=false или allowFontOps=false. Например, настройката allowFontOps=false е зададена в OpenBSD, Debian и RHEL, но не се прилага по подразбиране в Arch Linux.
Съдейки по списъка с промени и заявлението на изследователя, който откри проблема, уязвимостта е отстранена в версия xterm 375, но по други сведения уязвимостта продължава да се проявява в xterm 375 от Arch Linux. Можете да следите публикацията на поправките от дистрибутивите на следните страници: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD, FreeBSD, NetBSD.
Източник: opennet.ru
