CVE-2022-50542

HIGH

Linux Kernel < 4.9.337 - Use After Free

Title source: rule

Description

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.

Scores

CVSS v3 7.8
EPSS 0.0001
EPSS Percentile 1.1%
Attack Vector LOCAL
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Classification

CWE
CWE-416
Status published

Affected Products (9)

linux/linux_kernel < 4.9.337
linux/Kernel < 4.9.337linux
linux/Kernel < 4.14.303linux
linux/Kernel < 4.19.270linux
linux/Kernel < 5.4.229linux
linux/Kernel < 5.10.163linux
linux/Kernel < 5.15.86linux
linux/Kernel < 6.0.16linux
linux/Kernel < 6.1.2linux

Timeline

Published Oct 07, 2025
Tracked Since Feb 18, 2026