在 Wayland 的热键管理器中发现了几个漏洞

前几天有消息说 发现了一些漏洞 在 swhkd(Simple Wayland HotKey Daemon)中,由于临时文件、命令行选项和 unix 套接字处理不正确而导致。

该程序是用 Rust 编写的,并在基于 Wayland 协议(在基于 X11 的环境中使用的 sxhkd 进程的配置文件兼容模拟)的环境中处理热键。 该软件包包括一个非特权 swhks 进程,该进程执行热键操作,以及一个 swhkd 后台进程,该进程以 root 身份运行并在 uinput API 级别与输入设备进行交互。 为了组织 swhks 和 swhkd 之间的交互,使用了 Unix 套接字。

Polkit 的规则允许任何本地用户以 root 身份运行 /usr/bin/swhkd 进程并向其传递任意参数。

RPM包的集成 为 openSUSE Tumbleweed 提交的文件中包含不寻常的 Polkit 规则 需要 SUSE 安全团队审查的定义文件。

作为审查的结果,发现了多个安全问题。 个别问题在下面的详细报告中进行了描述。

已识别的漏洞, 提到以下内容:

CVE-2022-27815

这个漏洞 允许将进程 PID 保存在具有可预测名称的文件中 并且在其他用户的可写目录(/tmp/swhkd.pid)中,任何用户都可以创建一个/tmp/swhkd.pid文件并将现有进程的pid放入其中,这将导致无法启动swhkd。

在没有防止在 /tmp 中创建符号链接的情况下, 该漏洞可用于创建或覆盖文件 在系统上的任何目录中(PID写入文件)或确定系统上任何文件的内容(swhkd将PID文件的全部内容输出到stdout)。 需要注意的是,在发布的修复中,PID 文件并没有移动到 /run 目录,而是移动到 /etc 目录(/etc/swhkd/runtime/swhkd_{uid}.pid),它也不属于.

CVE-2022-27814

这个漏洞 允许您操纵“-c”命令行选项来指定配置文件 可以确定系统上是否存在任何文件。

与第一个漏洞一样,修复问题令人费解:修复问题归结为外部“cat”实用程序 ('Command::new("/bin/cat").arg(path)现在启动以读取配置文件。输出()')。

CVE-2022-27819

这个问题 它也与“-c”选项的使用有关,它加载并解析整个配置文件,而不检查文件的大小和类型。

例如,由于可用内存不足和创建杂散 I/O 导致拒绝服务,您可以在启动时指定块设备(“pkexec /usr/bin/swhkd -d -c /dev/sda »)或发出无限数据流的字符设备。

通过在打开文件之前重置权限解决了该问题,但解决方案并不完整,因为仅重置了用户 ID (UID),但组 ID (GID) 保持不变。

CVE-2022-27818

这个漏洞 允许您使用 /tmp/swhkd.sock 文件来创建 Unix 套接字,它是在公共可写目录中创建的,导致与第一个漏洞类似的问题(任何用户都可以创建 /tmp/swhkd.sock 并生成或拦截按键事件)。

CVE-2022-27817

在这个漏洞中, 从所有设备和所有会话中接收输入事件,即另一个 Wayland 或控制台会话中的用户可以在其他用户按下热键时拦截事件。

CVE-2022-27816

swhks 进程与 swhkd 一样,使用可公开写入的 /tmp 目录中的 PID 文件 /tmp/swhks.pid。 该问题类似于第一个漏洞,但没有那么危险,因为 swhks 在非特权用户下运行。

最后,如果您有兴趣了解更多,可以咨询 以下链接中的详细信息.


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。