Description
In the Linux kernel, the following vulnerability has been resolved: fpga: dfl: add bounds check in dfh_get_param_size() dfh_get_param_size() can return a parameter size larger than the feature region because the loop bounds check is evaluated before incrementing size. If the EOP (End of Parameters) bit is set in the same iteration, the inflated size is returned without re-validation against max. This can cause create_feature_instance() to call memcpy_fromio() with a size exceeding the ioremap'd region when a malicious FPGA device provides crafted DFHv1 parameter headers. Add a bounds check after the size increment to ensure the accumulated size never exceeds the feature boundary.
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
4747ab89b4a652f835494fcf8342aaa0efb9b0fd to < b2f6220e929b2a43605331d0139e65dc1640c05caffected4747ab89b4a652f835494fcf8342aaa0efb9b0fd to < 3b622aa447cf26104f96a8be39539367863bc6b6affected4747ab89b4a652f835494fcf8342aaa0efb9b0fd to < 012683accbb7d2bcf1264f2a0ecd6aa1dcea4d68affected4747ab89b4a652f835494fcf8342aaa0efb9b0fd to < f3df5386e3bb54626c117bd85e0158d45fb4aea9affected4747ab89b4a652f835494fcf8342aaa0efb9b0fd to < 9e8bc49f91f3f81d957c4f1c1f09fe94e2f88f6aaffected
Linux Linux
Default version status: affected
6.3affected0 to < 6.3unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b2f6220e929b2a43605331d0139e65dc1640c05c ↗
- https://git.kernel.org/stable/c/3b622aa447cf26104f96a8be39539367863bc6b6 ↗
- https://git.kernel.org/stable/c/012683accbb7d2bcf1264f2a0ecd6aa1dcea4d68 ↗
- https://git.kernel.org/stable/c/f3df5386e3bb54626c117bd85e0158d45fb4aea9 ↗
- https://git.kernel.org/stable/c/9e8bc49f91f3f81d957c4f1c1f09fe94e2f88f6a ↗