CVE-2023-52907CWE-416

CVE-2023-52907

High · published August 21, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
14.6
In the wild
Unconfirmed
What it is

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

nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()

Fix a use-after-free that occurs in hcd when in_urb sent from

pn533_usb_send_frame() is completed earlier than out_urb. Its callback

frees the skb data in pn533_send_async_complete() that is used as a

transfer buffer of out_urb. Wait before sending in_urb until the

callback of out_urb is called. To modify the callback of out_urb alone,

separate the complete function of out_urb and ack_urb.

Found by a modified version of syzkaller.

BUG: KASAN: use-after-free in dummy_timer

Call Trace:

memcpy (mm/kasan/shadow.c:65)

dummy_perform_transfer (drivers/usb/gadget/udc/dummy_hcd.c:1352)

transfer (drivers/usb/gadget/udc/dummy_hcd.c:1453)

dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:1972)

arch_static_branch (arch/x86/include/asm/jump_label.h:27)

static_key_false (include/linux/jump_label.h:207)

timer_expire_exit (include/trace/events/timer.h:127)

call_timer_fn (kernel/time/timer.c:1475)

expire_timers (kernel/time/timer.c:1519)

__run_timers (kernel/time/timer.c:1790)

run_timer_softirq (kernel/time/timer.c:1803)

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00242 · 14.6th percentile
Weakness
CWE-416 · Use After Free
Published
2024-08-21T11:15Z
Affected products (9)
ProductVersionsFixed in
linux/linux_kernel≥ 3.1, < 4.14.3034.14.303
linux/linux_kernel≥ 4.15, < 4.19.2704.19.270
linux/linux_kernel≥ 4.20, < 5.4.2295.4.229
linux/linux_kernel≥ 5.5, < 5.10.1645.10.164
linux/linux_kernel≥ 5.11, < 5.15.895.15.89
linux/linux_kernel≥ 5.16, < 6.1.76.1.7
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (7)
EPSS history
Timeline
  • 21 AUG 06:10Z
    nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
    cvelistv5