CVE-2026-31530Linux内核CXL端口驱动组件存在释放后重用(UAF)漏洞。在CXL内存设备自底向上移除过程中,cxl_detach_ep()函数可能对已释放的parent_port进行解锁操作,导致内存破坏。该问题源于子端口与其父端口之间缺乏生命周期保证,本地低权限攻击者可利用此漏洞导致系统崩溃或潜在权限提升。
该漏洞位于Linux内核的drivers/cxl/port.c中。当移除CXL内存设备时,cxl_detach_ep()会锁定端口及其父端口进行清理并调用delete_switch_port()。漏洞主要在于两点:一是并发detach操作可能导致父端口在Worker线程解锁前被释放;二是delete_switch_port()释放父端口资源后,设备核心可能级联注销并释放父端口,导致随后的device_unlock访问已释放内存。根本原因是子端口未持有父设备的引用,无法保证父端口在子端口生命周期内的有效性。