Уразлівасць у xterm, якая прыводзіць да выканання кода пры апрацоўцы вызначаных радкоў

У эмулятары тэрмінала 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

Дадаць каментар