Skip to content
CVE PROGRAM SOURCE RECORD7.1 High

CVE-2022-49551

usb: isp1760: Fix out-of-bounds array access

Description

In the Linux kernel, the following vulnerability has been resolved: usb: isp1760: Fix out-of-bounds array access Running the driver through kasan gives an interesting splat: BUG: KASAN: global-out-of-bounds in isp1760_register+0x180/0x70c Read of size 20 at addr f1db2e64 by task swapper/0/1 (...) isp1760_register from isp1760_plat_probe+0x1d8/0x220 (...) This happens because the loop reading the regmap fields for the different ISP1760 variants look like this: for (i = 0; i < HC_FIELD_MAX; i++) { ... } Meaning it expects the arrays to be at least HC_FIELD_MAX - 1 long. However the arrays isp1760_hc_reg_fields[], isp1763_hc_reg_fields[], isp1763_hc_volatile_ranges[] and isp1763_dc_volatile_ranges[] are dynamically sized during compilation. Fix this by putting an empty assignment to the [HC_FIELD_MAX] and [DC_FIELD_MAX] array member at the end of each array. This will make the array one member longer than it needs to be, but avoids the risk of overwriting whatever is inside [HC_FIELD_MAX - 1] and is simple and intuitive to read. Also add comments explaining what is going on.

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

  • 1da9e1c06873350c99ba49a052f92de85f2c69f2 to < bf2558bbdce3ab1d6bcba09f354914e4515d0a2baffected
  • 1da9e1c06873350c99ba49a052f92de85f2c69f2 to < 47d39cb57e8669e507d17d9e0d067d2b3e3a87aeaffected
  • 1da9e1c06873350c99ba49a052f92de85f2c69f2 to < 463bddd3ff1acf4036ddb80c34a715eb99debf46affected
  • 1da9e1c06873350c99ba49a052f92de85f2c69f2 to < 26ae2c942b5702f2e43d36b2a4389cfb7d616b6aaffected

Linux Linux

Default version status: affected

  • 5.14affected
  • 0 to < 5.14unaffected
  • 5.15.46 to ≤ 5.15.*unaffected
  • 5.17.14 to ≤ 5.17.*unaffected
  • 5.18.3 to ≤ 5.18.*unaffected
  • 5.19 to ≤ *unaffected

References