Description
In the Linux kernel, the following vulnerability has been resolved: fpga: dfl-afu: validate DMA mapping length in afu_dma_map_region() afu_ioctl_dma_map() accepts a 64-bit length from userspace via DFL_FPGA_PORT_DMA_MAP ioctl without an upper bound check. The value is passed to afu_dma_pin_pages() where npages is derived as length >> PAGE_SHIFT and passed to pin_user_pages_fast() which takes int nr_pages, causing implicit truncation if length is very large. Validate map.length at the ioctl entry point before calling afu_dma_map_region(), rejecting values whose page count exceeds INT_MAX.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
fa8dda1edef9ebc3af467c644c5533ac97171e12 to < 5352d488ce4ae5e8c68c080ad4c3a5f084ad5fbcaffectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < d7e787eee2ea619b6dbb98890472ee73daf2e7fdaffectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < a6a3884ff500f04f3088d6d09eec803cd35331a2affectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < 16381bda90b261a656ded0568630c1b857b2ebc8affectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < b50e6cd2395cde615f59b624819998d28c0668d6affectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < 59070040fd12e0b78d7b4d341d9f9a183237c5ffaffectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < fb2c0eab51ae5b02d2bae7d67c2cfbec39b57231affectedfa8dda1edef9ebc3af467c644c5533ac97171e12 to < fc3b071a7c8dc0f5d56defddf6e6fd5aaa3e1e27affected
Linux Linux
Default version status: affected
4.19affected0 to < 4.19unaffected5.10.266 to ≤ 5.10.*unaffected5.15.217 to ≤ 5.15.*unaffected6.1.184 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.39 to ≤ 6.18.*unaffected7.1.4 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/5352d488ce4ae5e8c68c080ad4c3a5f084ad5fbc ↗
- https://git.kernel.org/stable/c/d7e787eee2ea619b6dbb98890472ee73daf2e7fd ↗
- https://git.kernel.org/stable/c/a6a3884ff500f04f3088d6d09eec803cd35331a2 ↗
- https://git.kernel.org/stable/c/16381bda90b261a656ded0568630c1b857b2ebc8 ↗
- https://git.kernel.org/stable/c/b50e6cd2395cde615f59b624819998d28c0668d6 ↗
- https://git.kernel.org/stable/c/59070040fd12e0b78d7b4d341d9f9a183237c5ff ↗
- https://git.kernel.org/stable/c/fb2c0eab51ae5b02d2bae7d67c2cfbec39b57231 ↗
- https://git.kernel.org/stable/c/fc3b071a7c8dc0f5d56defddf6e6fd5aaa3e1e27 ↗