{"id":"DEBIAN-CVE-2022-48838","details":"In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: Fix use-after-free bug by not setting udc-\u003edev.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:  \u003cTASK\u003e  __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:  \tif (dev-\u003edriver) \t\tadd_uevent_var(env, \"DRIVER=%s\", dev-\u003edriver-\u003ename);  and between the test and the dereference of dev-\u003edriver, the gadget core sets dev-\u003edriver 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-\u003edev.driver is always NULL.  In fact, there is no reason for udc-\u003edev.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-\u003edev.driver.","modified":"2026-09-01T20:04:51.028642802Z","published":"2024-07-16T13:15:11.280Z","upstream":["CVE-2022-48838"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2022-48838"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:12","purl":"pkg:deb/debian/linux?arch=source&distro=bookworm"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.17.3-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2022-48838.json"}},{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.17.3-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2022-48838.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.17.3-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2022-48838.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"}]}