xterm 中的漏洞導致處理某些字串時執行程式碼

xterm 終端機模擬器中已發現一個漏洞 (CVE-2022-45063),該漏洞允許在終端機中處理某些轉義序列時執行 shell 命令。 對於最簡單情況下的攻擊,顯示專門設計的文件的內容就足夠了,例如使用 cat 實用程序,或從剪貼簿貼上一行。 printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063 cat cve-2022-45063

此問題是由於處理用於設定或檢索字體選項的程式碼 50 轉義序列時出現錯誤所引起的。 如果請求的字型不存在,則該操作會傳回請求中指定的字型名稱。 您無法直接在名稱中插入控製字符,但返回的字串可以用序列“^G”終止,在 zsh 中,當 vi 樣式行編輯模式處於活動狀態時,會導致執行列表擴展操作,這可以用於無需明確按Enter 鍵即可執行命令。

若要成功利用漏洞,使用者必須使用 Zsh 命令 shell,並將命令列編輯器 (vi-cmd-mode) 設為「vi」模式,發行版中預設通常不使用該模式。 當設定 xterm 設定allowWindowOps=false 或allowFontOps=false 時,也不會出現該問題。 例如,在 OpenBSD、Debian 和 RHEL 中設定了allowFontOps=false,但在 Arch Linux 中預設不套用。

從變更清單和發現問題的研究人員的聲明來看,該漏洞在 xterm 375 版本中已修復,但根據其他消息來源,該漏洞繼續出現在來自 Arch Linux 的 xterm 375 中。 您可以在以下頁面上追蹤各個發行版的修復程式發布:Debian、RHEL、Fedora、SUSE、Ubuntu、Arch Linux、OpenBSD、FreeBSD、NetBSD。

來源: opennet.ru

添加評論