KernelScan.io

HIGH

crypto CAAM DMACorruption

CVE-2026-43044

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.1HIGH

01

In the Linux kernel, the following vulnerability has been resolved: crypto: caam - fix DMA corruption on long hmac keys When a key longer than block size is supplied, it is copied and then hashed into the real key. The memory allocated for the copy needs to be rounded to DMA cache alignment, as otherwise the hashed key may corrupt neighbouring memory. The rounding was performed, but never actually used for the allocation. Fix this by replacing kmemdup with kmalloc for a larger buffer, followed by memcpy.

02

Engine v0.2.0

Risk summary

Local users can trigger a heap buffer overflow in the CAAM crypto driver by supplying HMAC keys longer than the block size. Because the allocated buffer is smaller than the DMA cache-aligned requirement, the CAAM hardware writes the hashed key beyond the buffer boundary, corrupting adjacent kernel memory. This can lead to kernel memory modification or system crashes; it does not directly expose memory contents.

Affecteddrivers/crypto/caam/caamhash.c (CAAM crypto driver)

Vulnerability analysis

The vulnerability occurs in the CAAM crypto driver's HMAC key handling. When processing keys longer than the block size, the code correctly calculates DMA cache alignment requirements but fails to use the aligned size for memory allocation. Instead, it uses kmemdup() which only allocates the original key length, causing subsequent DMA operations to write beyond the buffer boundary and corrupt adjacent kernel memory. The fix replaces kmemdup with kmalloc using the properly aligned size, followed by memcpy to copy the key data safely.

03

BranchFixed inPatch commit
6.126.12.81c0c133e0225d
6.186.18.2268feed135a0c
6.196.19.12f2af8be110bd
6.66.6.134a7ecf06d3ee0
mainline7.05ddfdcbe10dc