CVE-2026-31698Linux内核中的CCP驱动在处理PDH证书导出时存在安全漏洞。当PSP命令失败(例如用户空间缓冲区长度不足)时,驱动程序仍尝试将固件要求的数据量复制到用户空间。这会导致内核分配的缓冲区发生越界读取(slab-out-of-bounds),进而造成敏感内核信息泄露或系统崩溃。
该漏洞位于`drivers/crypto/ccp/sev-dev.c`文件的`sev_ioctl_do_pdh_export`函数中。在通过IOCTL检索PDH证书时,如果固件命令返回错误(如因用户提供的缓冲区太小导致的无效长度),代码逻辑未能正确终止流程。驱动程序忽略了错误状态,继续调用`copy_to_user`,且使用了固件要求的长度参数而非用户分配的缓冲区长度。由于此长度通常大于内核分配的临时缓冲区大小,导致了越界读取。KASAN报告显示读取操作溢出了内核slab对象,攻击者可利用此漏洞从内核内存中读取敏感数据。