libinput 中的漏洞导致连接恶意设备时执行代码

libinput 1.20.1 库提供了一个统一的输入堆栈,允许您在基于 Wayland 和 X.Org 的环境中使用相同的方法处理来自输入设备的事件,它消除了一个漏洞 (CVE-2022-1215),该漏洞允许您在将专门修改/模拟的输入设备连接到系统时组织代码的执行。 该问题在基于 X.Org 和 Wayland 的环境中表现出来,并且在本地连接设备和使用蓝牙接口操作设备时都可能被利用。 如果 X 服务器以 root 身份运行,则该漏洞允许以提升的权限执行代码。

该问题是由负责将设备连接信息输出到日志的代码中的行格式错误引起的。 特别是,evdev_log_msg 函数通过调用 snprintf 更改了日志条目的原始格式字符串,其中设备名称被添加为前缀。 接下来,修改后的字符串被传递给 log_msg_va 函数,该函数又使用 printf 函数。 因此,应用了格式字符解析的 printf 的第一个参数包含未经验证的外部数据,攻击者可以通过使设备返回包含字符串格式字符的名称(例如“Evil %s”)来启动堆栈损坏。 。

来源: opennet.ru

添加评论