CVE-2025-68656CVE-2025-68656是Espressif ESP-IDF USB Host HID(人机接口设备)驱动程序中的一个高危安全漏洞。该漏洞存在于usb_class_request_get_descriptor()函数中,当处理超大型描述符请求时,函数会释放并重新分配hid_device->ctrl_xfer内存,但随后继续使用已过期的本地指针。这导致在处理攻击者可控的Report Descriptor长度时产生立即性使用后释放漏洞。攻击者可通过恶意USB HID设备触发此漏洞,可能实现代码执行或导致系统崩溃。由于攻击向量为物理接触(AV:P),需要攻击者物理接入USB端口,因此主要影响物联网设备和嵌入式系统。Espressif已在1.1.0版本中修复此漏洞。
漏洞根源在于ESP-IDF USB Host HID驱动的usb_class_request_get_descriptor()函数中的内存管理错误。当该函数接收到超大型HID描述符请求时,会执行以下问题操作:首先释放hid_device->ctrl_xfer指向的内存缓冲区,然后重新分配一个新的内存块。然而,函数内部存在一个指向旧内存地址的局部指针变量,在内存释放后并未更新该指针,导致后续代码继续使用这个已释放的过期指针。当攻击者通过恶意USB设备发送精心构造的超大Report Descriptor长度值时,可触发此use-after-free条件。由于内存已被释放但指针仍被引用,可能导致敏感信息泄露、代码执行或系统崩溃。此漏洞的利用需要攻击者物理接触目标设备的USB端口,插入恶意HID设备,因此攻击门槛相对较高但仍具有实际威胁。