Skip to main content

CVE-2022-48838: Vulnerability in Linux Linux

High
VulnerabilityCVE-2022-48838cvecve-2022-48838
Published: Tue Jul 16 2024 (07/16/2024, 12:25:09 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: Fix use-after-free bug by not setting udc->dev.driver The syzbot fuzzer found a use-after-free bug: BUG: KASAN: use-after-free in dev_uevent+0x712/0x780 drivers/base/core.c:2320 Read of size 8 at addr ffff88802b934098 by task udevd/3689 CPU: 2 PID: 3689 Comm: udevd Not tainted 5.17.0-rc4-syzkaller-00229-g4f12b742eb2b #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace: <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0x8d/0x303 mm/kasan/report.c:255 __kasan_report mm/kasan/report.c:442 [inline] kasan_report.cold+0x83/0xdf mm/kasan/report.c:459 dev_uevent+0x712/0x780 drivers/base/core.c:2320 uevent_show+0x1b8/0x380 drivers/base/core.c:2391 dev_attr_show+0x4b/0x90 drivers/base/core.c:2094 Although the bug manifested in the driver core, the real cause was a race with the gadget core. dev_uevent() does: if (dev->driver) add_uevent_var(env, "DRIVER=%s", dev->driver->name); and between the test and the dereference of dev->driver, the gadget core sets dev->driver to NULL. The race wouldn't occur if the gadget core registered its devices on a real bus, using the standard synchronization techniques of the driver core. However, it's not necessary to make such a large change in order to fix this bug; all we need to do is make sure that udc->dev.driver is always NULL. In fact, there is no reason for udc->dev.driver ever to be set to anything, let alone to the value it currently gets: the address of the gadget's driver. After all, a gadget driver only knows how to manage a gadget, not how to manage a UDC. This patch simply removes the statements in the gadget core that touch udc->dev.driver.

AI-Powered Analysis

AILast updated: 06/30/2025, 22:27:46 UTC

Technical Analysis

CVE-2022-48838 is a use-after-free vulnerability identified in the Linux kernel's USB gadget subsystem. The issue arises due to a race condition between the gadget core and the driver core during device event handling. Specifically, the vulnerability is triggered in the dev_uevent() function within drivers/base/core.c, where the code checks if dev->driver is set and then attempts to access dev->driver->name. However, between the check and the dereference, the gadget core can set dev->driver to NULL, leading to a use-after-free condition. This race condition was discovered by the syzbot fuzzer and results in a kernel memory access error detected by Kernel Address Sanitizer (KASAN). The root cause is that the USB Device Controller (UDC) device's dev.driver field is improperly set to the gadget's driver address, which is incorrect because a gadget driver manages the gadget, not the UDC. The fix involves ensuring that udc->dev.driver is always NULL by removing code that sets this field, thereby preventing the race condition. This vulnerability affects Linux kernel versions including the 5.17.0-rc4 release candidate and potentially others using similar gadget core implementations. Exploitation could lead to kernel crashes or potentially privilege escalation if an attacker can trigger the race condition, as use-after-free bugs can be leveraged to execute arbitrary code or cause denial of service. However, exploitation requires local access and the ability to interact with the USB gadget subsystem, which limits the attack surface to systems with USB gadget functionality enabled and accessible.

Potential Impact

For European organizations, the impact of CVE-2022-48838 depends largely on their use of Linux systems with USB gadget functionality enabled. This vulnerability could lead to system instability or crashes (denial of service) and, in worst cases, privilege escalation allowing attackers to gain higher-level access to affected systems. Organizations using Linux-based embedded devices, IoT devices, or servers that utilize USB gadget drivers are at higher risk. Critical infrastructure sectors such as telecommunications, manufacturing, and transportation that deploy Linux-based embedded systems could face operational disruptions. Additionally, enterprises running Linux servers with USB gadget capabilities exposed to untrusted users or processes could see increased risk of exploitation. The vulnerability does not appear to be exploited in the wild yet, but the presence of a use-after-free bug in kernel space is a serious concern. European organizations should assess their exposure, especially those relying on customized Linux kernels or older versions without this patch. The potential for privilege escalation could lead to data breaches or lateral movement within networks, impacting confidentiality and integrity of sensitive information.

Mitigation Recommendations

To mitigate CVE-2022-48838, European organizations should: 1) Apply the official Linux kernel patches that remove the assignment of udc->dev.driver and fix the race condition as soon as they become available from their Linux distribution vendors or upstream Linux kernel sources. 2) Audit and restrict access to USB gadget functionality on Linux systems, disabling gadget drivers if not required, to reduce the attack surface. 3) Implement strict access controls and monitoring on systems with USB gadget capabilities to detect unusual activity or crashes related to dev_uevent. 4) For embedded and IoT devices, coordinate with device manufacturers to ensure firmware updates include this fix. 5) Employ kernel hardening techniques such as Kernel Address Sanitizer (KASAN) in testing environments to detect similar memory corruption issues proactively. 6) Maintain up-to-date inventories of Linux kernel versions in use and prioritize patching systems running vulnerable versions. 7) Consider isolating critical Linux systems with USB gadget functionality in segmented network zones to limit potential lateral movement if exploited.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2024-07-16T11:38:08.907Z
Cisa Enriched
true
Cvss Version
null
State
PUBLISHED

Threat ID: 682d982ec4522896dcbe6322

Added to database: 5/21/2025, 9:09:02 AM

Last enriched: 6/30/2025, 10:27:46 PM

Last updated: 8/14/2025, 3:51:41 AM

Views: 8

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats