Description
In the Linux kernel, the following vulnerability has been resolved: USB: serial: belkin_sa: validate interrupt status length The Belkin interrupt callback treats interrupt data as a four-byte status report and reads LSR/MSR fields at offsets 2 and 3. The interrupt-in buffer length is derived from endpoint wMaxPacketSize, and short interrupt transfers may complete successfully with a smaller actual_length. Check the completed interrupt packet length before parsing status fields so short interrupt endpoints and short successful packets are ignored instead of causing out-of-bounds or stale status-byte reads. KASAN report as below: BUG: KASAN: slab-out-of-bounds in belkin_sa_read_int_callback() Read of size 1 Call trace: belkin_sa_read_int_callback() (drivers/usb/serial/belkin_sa.c:202) __usb_hcd_giveback_urb() (drivers/usb/core/hcd.c:1630) dummy_timer() (?:?)
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
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f1617539ab90e67da788959bfd314076f093a11aaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < f361359a952da15e70e693c2d7dca5c5843eae3eaffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 37e54d1b986df35c936d81e5b59a7aa3ec6938f0affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < ffb739a49186ea784bbd9cb91b647f062395b419affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 6a4602221cba7a738442328d66a2f0b1c9bf6e17affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 22823a319fb2afdf02cacafbed8b613b757efbc8affected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < db1e7eb6203d534dad64cac2c793b69e561e657baffected1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to < 4ce058df2ee02cc2a0f0fd5cd64ce6f1482a0b65affected
Linux Linux
Default version status: affected
2.6.12affected0 to < 2.6.12unaffected5.10.259 to ≤ 5.10.*unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.93 to ≤ 6.12.*unaffected6.18.35 to ≤ 6.18.*unaffected7.0.12 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f1617539ab90e67da788959bfd314076f093a11a ↗
- https://git.kernel.org/stable/c/f361359a952da15e70e693c2d7dca5c5843eae3e ↗
- https://git.kernel.org/stable/c/37e54d1b986df35c936d81e5b59a7aa3ec6938f0 ↗
- https://git.kernel.org/stable/c/ffb739a49186ea784bbd9cb91b647f062395b419 ↗
- https://git.kernel.org/stable/c/6a4602221cba7a738442328d66a2f0b1c9bf6e17 ↗
- https://git.kernel.org/stable/c/22823a319fb2afdf02cacafbed8b613b757efbc8 ↗
- https://git.kernel.org/stable/c/db1e7eb6203d534dad64cac2c793b69e561e657b ↗
- https://git.kernel.org/stable/c/4ce058df2ee02cc2a0f0fd5cd64ce6f1482a0b65 ↗