最近有消息说 在 xterm 终端模拟器中发现了一个漏洞 (已编入 CVE-2022-45063 目录),问题 允许执行 shell 命令 当在终端中处理某些转义序列时。
关于提到的问题 是由于escape code 50的处理出错 用于设置或获取字体选项。 如果请求的字体不存在,则操作返回请求中指定的字体名称。
问题出在OSC 50序列,配置参考 喷泉。 如果给定的源不存在,则不设置,而是查询 将返回设置的名称。 控制字符不能 包含在内,但响应字符串可以以 ^G 结尾。 东方 本质上给了我们一个将文本返回到终端的原语 并以 ^G 结尾。
不能直接插入控制字符 在名字里, 但返回的字符串可以以序列“^G”结束, 在 zsh 中,当 vi 风格的行编辑模式处于活动状态时,会导致执行列表扩展操作,可用于执行命令而无需明确按下回车键。
对于最简单情况下的攻击, 显示专门设计的文件的内容就足够了 在屏幕上,例如,使用 cat 实用程序,或从剪贴板粘贴一行。
Debian、Red Hat 等默认禁用字体操作 ,但用户可以重新启用它们 通过选项或配置菜单。 此外,上游 xterm 确实 默认情况下不会禁用它们,因此某些发行版包括 易受攻击的默认配置。
要成功利用该漏洞, 用户必须使用 Zsh shell 并将命令行编辑器 (vi-cmd-mode) 更改为“vi”模式,通常在发行版中默认不使用。
基本上,我们需要:
zsh的
vi 样式中的活动行编辑模式
将木马的文本复制到剪贴板
粘贴到zsh这可以自动完成,许多站点在将文本复制到剪贴板时修改文本。 所以我只使用浏览器不访问的选择缓冲区。 只有在 gtk3 中,特别是在 ff 中,它们才会由于某种原因不断中断,这让人筋疲力尽。
当 xterm 设置为 allowWindowOps=false 或 allowFontOps=false. 例如,配置 允许FontOps = false 它在 OpenBSD、Debian 和 RHEL 上设置,但在 Arch Linux 上默认不强制执行。
根据变更日志和发现问题的研究人员的陈述,该漏洞 在 xterm 375 版本中修复, 但根据其他消息来源,该漏洞继续在 Arch Linux 的 xterm 375 中显现。
这意味着要利用此漏洞,用户必须
在 vi 行编辑模式下使用 Zsh(通常通过 $EDITOR 中有“vi”
它的)。 虽然有些晦涩难懂,但这并非完全闻所未闻。
配置。在该设置中,类似于:
printf "\e]50;i\$(touch /tmp/hack-like-its-1999)\a\e]50;?\a" > cve-2022-45063
cat cve-2022-45063 # 或其他将其传递给受害者的方式
最后,与往常一样,建议受影响系统的用户保持系统更新,因为正如您所知,当安全漏洞已知时,开发人员必须修复这些错误,因为这些错误的大部分利用方式都会被披露。
值得一提的是 默认设置中不允许进行字体操作 的xterm 一些 Linux 发行版, 所以并不是所有的发行版都容易出现这个错误。 对于那些有兴趣关注发行版更正发布的人,他们可以在这些页面上进行: Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux, OpenBSD系统, FreeBSD的 y NetBSD的.
如果你是 有兴趣了解更多,您可以查看详细信息 在下面的链接中。