dma-buf: Fix silent overflow for phys vec to sgt
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 7.2.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: dma-buf: Fix silent overflow for phys vec to sgt In case MMIO size is bigger than 4G and peer2peer DMA goes through host bridge, we trigger a code path that assigns the total linked IOVA (which is greater than 4G) to mapped_len. Previously, `mapped_len` was declared as 32-bit `unsigned int`. When accumulating `size_t` lengths, this leads to a silent wrap-around. This truncation causes truncated lengths to be passed to functions like `fill_sg_entry()`. Fix this by changing `mapped_len` to `size_t` (64-bit). While at it, fix similar potential overflow issues in `calc_sg_nents` by using `check_add_overflow()` for `nents` and using `unsigned int` for the loop iterator in `fill_sg_entry` to match.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3aa31a8bb11e47c0ff2b306988d1756b810c1c3c · fixed in 6b98fd7106d4e486f432664893dcd4d6fa3a9693; From 3aa31a8bb11e47c0ff2b306988d1756b810c1c3c · fixed in b344ca94e8cc85796f16ea25e2e5a8e0303fe813
- Linux Linux
6.19
- KernelLinux
From 6.19.0 · fixed in 7.2.8