Lucene search

K
osvGoogleOSV:CVE-2023-52903
HistoryAug 21, 2024 - 7:15 a.m.

CVE-2023-52903

2024-08-2107:15:06
Google
osv.dev
linux kernel
io_uring
vulnerability
resolved
iopoll
overflow
syzbot
warning

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

AI Score

7.5

Confidence

Low

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

io_uring: lock overflowing for IOPOLL

syzbot reports an issue with overflow filling for IOPOLL:

WARNING: CPU: 0 PID: 28 at io_uring/io_uring.c:734 io_cqring_event_overflow+0x1c0/0x230 io_uring/io_uring.c:734
CPU: 0 PID: 28 Comm: kworker/u4:1 Not tainted 6.2.0-rc3-syzkaller-16369-g358a161a6a9e #0
Workqueue: events_unbound io_ring_exit_work
Call trace:
Ā io_cqring_event_overflow+0x1c0/0x230 io_uring/io_uring.c:734
Ā io_req_cqe_overflow+0x5c/0x70 io_uring/io_uring.c:773
Ā io_fill_cqe_req io_uring/io_uring.h:168 [inline]
Ā io_do_iopoll+0x474/0x62c io_uring/rw.c:1065
Ā io_iopoll_try_reap_events+0x6c/0x108 io_uring/io_uring.c:1513
Ā io_uring_try_cancel_requests+0x13c/0x258 io_uring/io_uring.c:3056
Ā io_ring_exit_work+0xec/0x390 io_uring/io_uring.c:2869
Ā process_one_work+0x2d8/0x504 kernel/workqueue.c:2289
Ā worker_thread+0x340/0x610 kernel/workqueue.c:2436
Ā kthread+0x12c/0x158 kernel/kthread.c:376
Ā ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:863

There is no real problem for normal IOPOLL as flush is also called with
uring_lock taken, but itā€™s getting more complicated for IOPOLL|SQPOLL,
for which __io_cqring_overflow_flush() happens from the CQ waiting path.

CVSS3

5.5

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

NONE

Availability Impact

HIGH

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

AI Score

7.5

Confidence

Low