CVE-2022-48838

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.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
LinuxCNA
---
---
CVEADP
---
---
CISA-ADPADP
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: 14%
VendorProductVersion
linuxlinux_kernel
3.1 ≤
𝑥
< 4.9.308
linuxlinux_kernel
4.10 ≤
𝑥
< 4.14.273
linuxlinux_kernel
4.15 ≤
𝑥
< 4.19.236
linuxlinux_kernel
4.20 ≤
𝑥
< 5.4.187
linuxlinux_kernel
5.5 ≤
𝑥
< 5.10.108
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.31
linuxlinux_kernel
5.16 ≤
𝑥
< 5.16.17
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.226-1
fixed
bookworm
6.1.106-3
fixed
bookworm (security)
6.1.112-1
fixed
trixie
6.11.5-1
fixed
sid
6.11.6-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
noble
not-affected
jammy
Fixed 5.15.0-35.36
released
focal
Fixed 5.4.0-117.132
released
bionic
pending
xenial
pending
trusty
ignored
linux-allwinner-5.19
noble
dne
jammy
ignored
focal
dne
linux-aws
noble
not-affected
jammy
Fixed 5.15.0-1009.11
released
focal
Fixed 5.4.0-1078.84
released
bionic
pending
xenial
pending
trusty
pending
linux-aws-5.0
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-aws-5.11
noble
dne
jammy
dne
focal
ignored
linux-aws-5.13
noble
dne
jammy
dne
focal
ignored
linux-aws-5.15
noble
dne
jammy
dne
focal
not-affected
linux-aws-5.19
noble
dne
jammy
ignored
focal
dne
linux-aws-5.3
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-aws-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-aws-5.8
noble
dne
jammy
dne
focal
ignored
linux-aws-6.2
noble
dne
jammy
ignored
focal
dne
linux-aws-6.5
noble
dne
jammy
not-affected
focal
dne
linux-aws-fips
noble
dne
jammy
dne
focal
dne
linux-aws-hwe
noble
dne
jammy
dne
focal
dne
xenial
Fixed 4.15.0-1133.143~16.04.1
released
linux-azure
noble
not-affected
jammy
Fixed 5.15.0-1008.9
released
focal
Fixed 5.4.0-1083.87
released
bionic
ignored
xenial
Fixed 4.15.0-1142.156~16.04.1
released
trusty
Fixed 4.15.0-1142.156~14.04.1
released
linux-azure-4.15
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-azure-5.11
noble
dne
jammy
dne
focal
ignored
linux-azure-5.13
noble
dne
jammy
dne
focal
ignored
linux-azure-5.15
noble
dne
jammy
dne
focal
Fixed 5.15.0-1008.9~20.04.1
released
linux-azure-5.19
noble
dne
jammy
ignored
focal
dne
linux-azure-5.3
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-azure-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-azure-5.8
noble
dne
jammy
dne
focal
ignored
linux-azure-6.2
noble
dne
jammy
ignored
focal
dne
linux-azure-6.5
noble
dne
jammy
not-affected
focal
dne
linux-azure-edge
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-azure-fde
noble
dne
jammy
not-affected
focal
ignored
linux-azure-fde-5.15
noble
dne
jammy
dne
focal
not-affected
linux-azure-fde-5.19
noble
dne
jammy
ignored
focal
dne
linux-azure-fde-6.2
noble
dne
jammy
ignored
focal
dne
linux-azure-fips
noble
dne
jammy
dne
focal
dne
linux-bluefield
noble
dne
jammy
dne
focal
Fixed 5.4.0-1040.44
released
linux-fips
noble
dne
jammy
dne
focal
dne
linux-gcp
noble
not-affected
jammy
Fixed 5.15.0-1006.9
released
focal
Fixed 5.4.0-1078.84
released
bionic
ignored
xenial
Fixed 4.15.0-1127.142~16.04.1
released
linux-gcp-4.15
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-gcp-5.11
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.13
noble
dne
jammy
dne
focal
ignored
linux-gcp-5.15
noble
dne
jammy
dne
focal
not-affected
linux-gcp-5.19
noble
dne
jammy
ignored
focal
dne
linux-gcp-5.3
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-gcp-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-gcp-5.8
noble
dne
jammy
dne
focal
ignored
linux-gcp-6.2
noble
dne
jammy
ignored
focal
dne
linux-gcp-6.5
noble
dne
jammy
not-affected
focal
dne
linux-gcp-fips
noble
dne
jammy
dne
focal
dne
linux-gke
noble
not-affected
jammy
Fixed 5.15.0-1006.7
released
focal
ignored
linux-gke-4.15
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-gke-5.15
noble
dne
jammy
dne
focal
ignored
linux-gke-5.4
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-gkeop
noble
dne
jammy
not-affected
focal
Fixed 5.4.0-1046.48
released
linux-gkeop-5.15
noble
dne
jammy
dne
focal
not-affected
linux-gkeop-5.4
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-hwe
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
Fixed 4.15.0-184.194~16.04.1
released
linux-hwe-5.11
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.13
noble
dne
jammy
dne
focal
ignored
linux-hwe-5.15
noble
dne
jammy
dne
focal
Fixed 5.15.0-41.44~20.04.1
released
linux-hwe-5.19
noble
dne
jammy
ignored
focal
dne
linux-hwe-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-hwe-5.8
noble
dne
jammy
dne
focal
ignored
linux-hwe-6.2
noble
dne
jammy
ignored
focal
dne
linux-hwe-6.5
noble
dne
jammy
ignored
focal
dne
linux-hwe-6.8
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-edge
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
linux-ibm
noble
not-affected
jammy
Fixed 5.15.0-1005.5
released
focal
Fixed 5.4.0-1026.29
released
linux-ibm-5.15
noble
dne
jammy
dne
focal
not-affected
linux-ibm-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-intel
noble
not-affected
jammy
dne
focal
dne
linux-intel-5.13
noble
dne
jammy
dne
focal
ignored
linux-intel-iot-realtime
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-iotg
noble
dne
jammy
Fixed 5.15.0-1008.11
released
focal
dne
linux-intel-iotg-5.15
noble
dne
jammy
dne
focal
Fixed 5.15.0-1008.11~20.04.1
released
linux-iot
noble
dne
jammy
dne
focal
Fixed 5.4.0-1004.6
released
linux-kvm
noble
dne
jammy
Fixed 5.15.0-1008.8
released
focal
Fixed 5.4.0-1068.72
released
bionic
pending
xenial
pending
linux-lowlatency
noble
not-affected
jammy
Fixed 5.15.0-35.36
released
focal
dne
linux-lowlatency-hwe-5.15
noble
dne
jammy
dne
focal
Fixed 5.15.0-42.45~20.04.1
released
linux-lowlatency-hwe-5.19
noble
dne
jammy
ignored
focal
dne
linux-lowlatency-hwe-6.2
noble
dne
jammy
ignored
focal
dne
linux-lowlatency-hwe-6.5
noble
dne
jammy
ignored
focal
dne
linux-lowlatency-hwe-6.8
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lts-xenial
noble
dne
jammy
dne
focal
dne
trusty
pending
linux-nvidia
noble
not-affected
jammy
not-affected
focal
dne
linux-nvidia-6.2
noble
dne
jammy
ignored
focal
dne
linux-nvidia-6.5
noble
dne
jammy
not-affected
focal
dne
linux-nvidia-6.8
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-lowlatency
noble
not-affected
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-oem-5.10
noble
dne
jammy
dne
focal
ignored
linux-oem-5.13
noble
dne
jammy
dne
focal
ignored
linux-oem-5.14
noble
dne
jammy
dne
focal
ignored
linux-oem-5.17
noble
dne
jammy
ignored
focal
dne
linux-oem-5.6
noble
dne
jammy
dne
focal
ignored
linux-oem-6.0
noble
dne
jammy
ignored
focal
dne
linux-oem-6.1
noble
dne
jammy
ignored
focal
dne
linux-oem-6.5
noble
dne
jammy
not-affected
focal
dne
linux-oem-6.8
noble
not-affected
jammy
dne
focal
dne
linux-oracle
noble
not-affected
jammy
Fixed 5.15.0-1007.9
released
focal
Fixed 5.4.0-1076.83
released
bionic
pending
xenial
Fixed 4.15.0-1098.108~16.04.1
released
linux-oracle-5.0
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-oracle-5.11
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.13
noble
dne
jammy
dne
focal
ignored
linux-oracle-5.15
noble
dne
jammy
dne
focal
not-affected
linux-oracle-5.3
noble
dne
jammy
dne
focal
dne
bionic
ignored
linux-oracle-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-oracle-5.8
noble
dne
jammy
dne
focal
ignored
linux-oracle-6.5
noble
dne
jammy
not-affected
focal
dne
linux-raspi
noble
not-affected
jammy
Fixed 5.15.0-1011.13
released
focal
Fixed 5.4.0-1065.75
released
linux-raspi-5.4
noble
dne
jammy
dne
focal
dne
bionic
pending
linux-raspi-realtime
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-raspi2
noble
dne
jammy
dne
focal
ignored
linux-realtime
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv
noble
not-affected
jammy
ignored
focal
ignored
linux-riscv-5.11
noble
dne
jammy
dne
focal
ignored
linux-riscv-5.15
noble
dne
jammy
dne
focal
not-affected
linux-riscv-5.19
noble
dne
jammy
ignored
focal
dne
linux-riscv-5.8
noble
dne
jammy
dne
focal
ignored
linux-riscv-6.5
noble
dne
jammy
ignored
focal
dne
linux-riscv-6.8
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-5.19
noble
dne
jammy
ignored
focal
dne
linux-starfive-6.2
noble
dne
jammy
ignored
focal
dne
linux-starfive-6.5
noble
dne
jammy
not-affected
focal
dne
linux-xilinx-zynqmp
noble
dne
jammy
not-affected
focal
not-affected