CVE-2026-46294
HighCVSS 7.8Exploitation Probability (EPSS)
Low risk4th percentile - higher than 4% of all known CVEs
Summary
A buffer overflow vulnerability was found in the Linux kernel in the retrieve_status function of the dm-ioctl module. The bug is due to missing overflow check when aligning the outptr pointer to an 8-byte boundary, which can lead to out-of-bounds write. The vulnerability has no security implications because only root can issue device mapper ioctls and commonly used libraries use 8-byte aligned buffers.
Risk Assessment
The risk to the organization is minimal as the exploit requires root privileges and typical environments are not prone to accidental triggering. However, in custom configurations or targeted attacks with root access, memory corruption is possible.
Recommendation
It is recommended to update the Linux kernel to a version containing the fix that adds overflow checking during pointer alignment. Monitor official security advisories from your Linux distribution for the patch.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: dm: fix a buffer overflow in ioctl processing Tony Asleson (using Claude) found a buffer overflow in dm-ioctl in the function retrieve_status: 1. The code in retrieve_status checks that the output string fits into the output buffer and writes the output string there 2. Then, the code aligns the "outptr" variable to the next 8-byte boundary: outptr = align_ptr(outptr); 3. The alignment doesn't check overflow, so outptr could point past the buffer end 4. The "for" loop is iterated again, it executes: remaining = len - (outptr - outbuf); 5. If "outptr" points past "outbuf + len", the arithmetics wraps around and the variable "remaining" contains unusually high number 6. With "remaining" being high, the code writes more data past the end of the buffer Luckily, this bug has no security implications because: 1. Only root can issue device mapper ioctls 2. The commonly used libraries that communicate with device mapper (libdevmapper and devicemapper-rs) use buffer size that is aligned to 8 bytes - thus, "outptr = align_ptr(outptr)" can't overshoot the input buffer and the bug can't happen accidentally

