CVE-2026-31522Linux内核中HID子系统的magicmouse驱动存在内存泄漏漏洞。magicmouse_report_fixup()函数在使用kmemdup()分配新缓冲区后返回,但从未释放该内存。由于report_fixup()的调用者不会接管返回指针的所有权,导致分配的内存无法被正确释放,从而造成内存泄漏。
该漏洞位于Linux内核的drivers/hid/hid-magicmouse.c文件中的magicmouse_report_fixup()函数。该函数用于修复和转换Magic Mouse设备的报告描述符。函数内部调用kmemdup()复制并分配新的缓冲区,然后返回该指针。然而,根据HID子系统的设计规范,report_fixup()回调函数的调用者不会释放返回的指针,只负责释放原始的rdesc缓冲区。因此,每次调用该函数时都会泄漏一个分配的缓冲区。攻击者可以通过反复触发设备重连或报告描述符重新加载来累积内存泄漏,最终可能导致系统内存耗尽,引发拒绝服务。