Description
In the Linux kernel, the following vulnerability has been resolved: USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr() build_i2c_fw_hdr() allocates a fixed-size buffer of (16*1024 - 512) + sizeof(struct ti_i2c_firmware_rec) bytes, then copies le16_to_cpu(img_header->Length) bytes into it without validating that Length fits within the available space after the firmware record header. img_header->Length is a __le16 from the firmware file and can be up to 65535. check_fw_sanity() validates the total firmware size but not img_header->Length specifically. Fix by rejecting images where img_header->Length exceeds the available destination space.
Affected products
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 3e187152f44d76d7633a3855ffd0099e1588b82a
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – b7faf660eefa2047ebc2959ff76da2b6eae2e9e3
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 2fd64bf0ad66ab5de0c73524591d879427ba5aba
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 4cb722747ed25971f35cc47ce5c0e79d7f717713
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 130d6567eb148040eed1b73e1414ad6c27d22bd5
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 294692d3296eee3391c348d7ea6401916d27806c
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 5a79b634ee58786ca627268daefa7744f2af2e14
- Linux / Linux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – 0fd2b00b2d3d05e3eaa13342b3dfb0fa85c226ae
- Linux / Linux2.6.12 – 2.6.12
- Linux / Linux0 – 2.6.12
- Linux / Linux5.10.259 – 5.10.*
- Linux / Linux5.15.210 – 5.15.*
- Linux / Linux6.1.176 – 6.1.*
- Linux / Linux6.6.143 – 6.6.*
- Linux / Linux6.12.94 – 6.12.*
- Linux / Linux6.18.36 – 6.18.*
- Linux / Linux7.0.13 – 7.0.*
- Linux / Linux7.1 – *
References
- MISChttps://git.kernel.org/stable/c/3e187152f44d76d7633a3855ffd0099e1588b82a
- MISChttps://git.kernel.org/stable/c/b7faf660eefa2047ebc2959ff76da2b6eae2e9e3
- MISChttps://git.kernel.org/stable/c/2fd64bf0ad66ab5de0c73524591d879427ba5aba
- MISChttps://git.kernel.org/stable/c/4cb722747ed25971f35cc47ce5c0e79d7f717713
- MISChttps://git.kernel.org/stable/c/130d6567eb148040eed1b73e1414ad6c27d22bd5
- MISChttps://git.kernel.org/stable/c/294692d3296eee3391c348d7ea6401916d27806c
- MISChttps://git.kernel.org/stable/c/5a79b634ee58786ca627268daefa7744f2af2e14
- MISChttps://git.kernel.org/stable/c/0fd2b00b2d3d05e3eaa13342b3dfb0fa85c226ae