CVE-2026-43044Linux内核CAAM加密驱动程序存在DMA内存损坏漏洞。当处理超过块大小的HMAC密钥时,由于内存分配未正确应用DMA缓存对齐,导致DMA操作可能破坏相邻内存。本地低权限攻击者可利用此漏洞造成信息泄露、权限提升或系统拒绝服务。
该漏洞位于Linux内核的CAAM(Cryptographic Acceleration and Assurance Module)驱动程序中,涉及对HMAC长密钥的处理机制。在HMAC实现中,当输入密钥长度超过哈希算法的块大小(如SHA-256的64字节)时,需先对密钥进行哈希运算。CAAM驱动程序在处理此过程时,虽然计算出了符合DMA缓存对齐要求的缓冲区大小,但在实际内存分配步骤中,错误地使用了`kmemdup`函数。该函数仅分配足够容纳原始数据的内存,忽略了之前计算的对齐填充。因此,分配的缓冲区起始地址未按DMA对齐要求对齐。当硬件执行DMA操作时,由于缓存行或DMA传输粒度的原因,会读写超出预期缓冲区范围的邻近内存区域,导致内存损坏。鉴于CVSS向量显示攻击复杂度低且无需用户交互,本地攻击者可轻易触发该漏洞,进而可能导致内核崩溃或权限提升。