在 USB Gadget 中,内核子系统 LinuxUSB Gadget API 中发现了一个漏洞 (CVE-2021-39685)。该 API 提供了一个用于创建客户端 USB 设备和模拟 USB 设备的软件接口。此漏洞可能导致内核信息泄露、程序崩溃或在内核级别执行任意代码。攻击者无需特权即可利用此漏洞,通过操纵使用 USB Gadget API 实现的各种设备类(例如 rndis、hid、uac1、uac1_legacy 和 uac2)来发起攻击。
该问题已在最近发布的内核更新中修复。 Linux 5.15.8、5.10.85、5.4.165、4.19.221、4.14.258、4.9.293 和 4.4.295。分布中的问题仍然没有解决(Debian, Ubuntu(RHEL、SUSE、Fedora、Arch)。已准备好原型漏洞利用程序来演示该漏洞。
该问题是由小工具驱动程序 rndis、hid、uac1、uac1_legacy 和 uac2 中的数据传输请求处理程序中的缓冲区溢出引起的。 利用该漏洞,非特权攻击者可以通过发送特殊控制请求来访问内核内存,该请求的 wLength 字段值超过静态缓冲区的大小,而静态缓冲区始终分配 4096 字节 (USB_COMP_EP0_BUFSIZ)。 在攻击期间,用户空间中的非特权进程可以在内核内存中读取或写入最多 65 KB 的数据。
来源: opennet.ru
