Description
In the Linux kernel, the following vulnerability has been resolved: comedi: me4000: Fix potential overrun of firmware buffer `me4000_xilinx_download()` loads the firmware that was requested by `request_firmware()`. It is possible for it to overrun the source buffer because it blindly trusts the file format. It reads a data stream length from the first 4 bytes into variable `file_length` and reads the data stream contents of length `file_length` from offset 16 onwards. Add a test to ensure that the supplied firmware is long enough to contain the header and the data stream. On failure, log an error and return `-EINVAL`. Note: The firmware loading was totally broken before commit ac584af59945 ("staging: comedi: me4000: fix firmware downloading"), but that is the most sensible target for this fix.
Product status
ac584af599452748187cf6d7865b1607c54ee443 (git) before 8ddfe6495c245226a30d8b36e2f4a7aa7712e8d6
ac584af599452748187cf6d7865b1607c54ee443 (git) before 64b24b713e1a3ea6624480594b4f8c2ff86502f2
ac584af599452748187cf6d7865b1607c54ee443 (git) before f72b5567f7c117b46b4058dc6a0c7554f8565561
ac584af599452748187cf6d7865b1607c54ee443 (git) before 1603dd471f47762e9d1f52304edb3e49a7e62655
ac584af599452748187cf6d7865b1607c54ee443 (git) before 99f31aa98ab6e3805c455b65bcd01b3d48bdf1a5
ac584af599452748187cf6d7865b1607c54ee443 (git) before eae19cab44204537f79146f15a51811b13227c38
ac584af599452748187cf6d7865b1607c54ee443 (git) before de3f923ae7d91480ed3ecea1b1e1fc0dc25b597d
ac584af599452748187cf6d7865b1607c54ee443 (git) before 3fb43a7a5b44713f892c58ead2e5f3a1bc9f4ee7
3.19
Any version before 3.19
5.10.253 (semver)
5.15.203 (semver)
6.1.168 (semver)
6.6.134 (semver)
6.12.81 (semver)
6.18.22 (semver)
6.19.12 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/8ddfe6495c245226a30d8b36e2f4a7aa7712e8d6
git.kernel.org/...c/64b24b713e1a3ea6624480594b4f8c2ff86502f2
git.kernel.org/...c/f72b5567f7c117b46b4058dc6a0c7554f8565561
git.kernel.org/...c/1603dd471f47762e9d1f52304edb3e49a7e62655
git.kernel.org/...c/99f31aa98ab6e3805c455b65bcd01b3d48bdf1a5
git.kernel.org/...c/eae19cab44204537f79146f15a51811b13227c38
git.kernel.org/...c/de3f923ae7d91480ed3ecea1b1e1fc0dc25b597d
git.kernel.org/...c/3fb43a7a5b44713f892c58ead2e5f3a1bc9f4ee7