在 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
