Description: | In the Linux kernel, the following vulnerability has been resolved:
USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command The
isd200 sub-driver in usb-storage uses the HEADS and SECTORS values in
the ATA ID information to calculate cylinder and head values when
creating a CDB for READ or WRITE commands. The calculation involves
division and modulus operations, which will cause a crash if either of
these values is 0. While this never happens with a genuine device, it
could happen with a flawed or subversive emulation, as reported by the
syzbot fuzzer. Protect against this possibility by refusing to bind to
the device if either the ATA_ID_HEADS or ATA_ID_SECTORS value in the
device's ID information is 0. This requires isd200_Initialization() to
return a negative error code when initialization fails; currently it
always returns 0 (even when there is an error).
|