CVE-2026-31699Linux内核中的crypto ccp驱动在处理PEK CSR请求时存在安全漏洞。当PSP固件命令因用户空间缓冲区长度不足而失败时,驱动程序未正确处理错误,仍尝试按照固件期望的长度拷贝数据。这导致内核缓冲区发生越界读取,可能泄露敏感内存数据。
漏洞位于`drivers/crypto/ccp/sev-dev.c`文件的`sev_ioctl_do_pek_csr`函数中。当用户态程序通过ioctl获取PEK CSR时,如果传入的缓冲区长度小于固件所需长度,固件会返回错误(如SEV_RET_INVALID_LEN)。然而,驱动代码在调用`copy_to_user`前未充分检查固件返回的状态码,导致执行了基于固件长度的拷贝操作。由于内核分配的缓冲区较小,该操作触发`slab-out-of-bounds`读取,攻击者利用此漏洞可读取内核内存中的敏感信息。