CVE-2026-23344Linux内核中的CCP驱动程序存在一个释放后重用漏洞。该漏洞位于sev_tsm_init_locked函数的错误处理路径中。当初始化过程发生错误时,代码先执行了kfree释放了结构体内存,但在随后的pr_err日志打印中,又尝试访问已被释放的内存字段。由于此时内存已无效,可能导致内核崩溃或信息泄露,攻击者利用此漏洞可在本地低权限下执行任意代码或造成拒绝服务。
漏洞原理在于Linux内核crypto子系统的CCP驱动中,sev_tsm_init_locked函数的异常处理逻辑存在严重的内存管理缺陷。在函数执行出错并进入错误处理路径时,代码逻辑顺序错误:先执行kfree(t)释放了指针t指向的内存块,紧接着调用pr_err()打印错误日志,并在格式化参数中引用了t->tio_en和t->tio_init_done成员变量。此时t已成为悬空指针,访问其成员即构成释放后重用漏洞。利用该漏洞需要本地低权限。攻击者可通过特定的系统调用或硬件交互触发该错误路径,并利用堆喷射等技术重新分配被释放的内存块,控制其内容。当内核再次访问该内存时,可导致内核崩溃、敏感信息泄露,甚至结合其他技术实现本地权限提升。