]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr()
authorAdrian Korwel <adriank20047@gmail.com>
Mon, 25 May 2026 14:58:32 +0000 (09:58 -0500)
committerJohan Hovold <johan@kernel.org>
Tue, 2 Jun 2026 10:09:25 +0000 (12:09 +0200)
commit0fd2b00b2d3d05e3eaa13342b3dfb0fa85c226ae
treed91a13b69e4bc8119ac87647a9821ecde524eb35
parent183c1076eca43bbb3e7bdf597456f91d81c73e74
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.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Adrian Korwel <adriank20047@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/io_ti.c