从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration - 描述:修复了在全速重新枚举时,Panther点的NULL指针解除引用的问题。全速设备在重新枚举时可能需要重新配置端点0的最大包大小值。Usb核心在这种情况下调用usb_ep0_reinit(),这会导致调用xhci_configure_endpoint()。 2. 问题背景: - 设备行为:在重新枚举全速设备时,如果地址设备命令失败,新的xhci_virt_device结构会被分配,但带宽表指针没有正确设置。 - 触发条件:这会导致在下次调用usb_ep0_reinit()时,xhci_configure_endpoint()尝试检查和保留带宽时触发NULL指针解除引用。 3. 修复措施: - 代码修改:通过确保带宽表指针在失败的地址设备命令后正确设置,并且避免在没有实际端点的情况下检查带宽。 - 代码片段: 4. 报告和修复: - 报告者:Karel Balej - 修复者:Mathias Nyman和Greg Kroah-Hartman - 相关链接:https://lore.kernel.org/linux-usb/D3CKQQAETH47.1MUO22RTCH2O3@matfyz.cz/ 5. 补丁应用: - 补丁应用位置:drivers/usb/host/xhci.c - 补丁应用内容:代码片段显示了修复后的xhci_configure_endpoint()函数,其中添加了条件检查和带宽保留逻辑。 这些信息表明,该漏洞与USB全速设备的重新枚举过程中的带宽管理有关,修复措施通过修改xhci_configure_endpoint()函数来确保带宽表指针的正确设置和带宽检查的条件判断。