CVE-2022-50542 PUBLISHED

media: si470x: Fix use-after-free in si470x_int_in_callback()

Assigner: Linux
Reserved: 07.10.2025 Published: 07.10.2025 Updated: 07.10.2025

In the Linux kernel, the following vulnerability has been resolved:

media: si470x: Fix use-after-free in si470x_int_in_callback()

syzbot reported use-after-free in si470x_int_in_callback() [1]. This indicates that urb->context, which contains struct si470x_device object, is freed when si470x_int_in_callback() is called.

The cause of this issue is that si470x_int_in_callback() is called for freed urb.

si470x_usb_driver_probe() calls si470x_start_usb(), which then calls usb_submit_urb() and si470x_start(). If si470x_start_usb() fails, si470x_usb_driver_probe() doesn't kill urb, but it just frees struct si470x_device object, as depicted below:

si470x_usb_driver_probe() ... si470x_start_usb() ... usb_submit_urb() retval = si470x_start() return retval if (retval < 0) free struct si470x_device object, but don't kill urb

This patch fixes this issue by killing urb when si470x_start_usb() fails and urb is submitted. If si470x_start_usb() fails and urb is not submitted, i.e. submitting usb fails, it just frees struct si470x_device object.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 146bd005ebb01ae190c22af050cb98623958c373 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 8c6151b8e8dd2d98ad2cd725d26d1e103d989891 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 52f54fe78cca24850a30865037250f63eb3d5bf7 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 0ca298d548461d29615f9a2b1309e8dcf4a352c6 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 1c6447d0fc68650e51586dde79b5090d9d77f13a (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 6c8aee0c8fcc6dda94315f7908e8fa9bc75abe75 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 63648a7bd1a7599bcc2040a6d1792363ae4c2e1b (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 92b0888398e4ba51d93b618a6506781f4e3879c9 (excl.)
  • affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to 7d21e0b1b41b21d628bf2afce777727bd4479aa5 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • unaffected from 4.9.337 to 4.9.* (incl.)
  • unaffected from 4.14.303 to 4.14.* (incl.)
  • unaffected from 4.19.270 to 4.19.* (incl.)
  • unaffected from 5.4.229 to 5.4.* (incl.)
  • unaffected from 5.10.163 to 5.10.* (incl.)
  • unaffected from 5.15.86 to 5.15.* (incl.)
  • unaffected from 6.0.16 to 6.0.* (incl.)
  • unaffected from 6.1.2 to 6.1.* (incl.)
  • unaffected from 6.2 to * (incl.)

References