Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-53052— io_uring/rw: fix missing NOWAIT check for O_DIRECT start write

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于缺少NOWAIT检查。

AI Predicted 3.3 Difficulty: Hard EPSS 0.18% · P8

Possible ATT&CK Techniques 1 AI

T1548.001 · Setuid and Setgid

Affected Version Matrix 14

VendorProduct Version RangeStatus
Linux Linux 2b188cc1bb857a9d4701ae59aa7768b5124e262e< 485d9232112b17f389b29497ff41b97b3189546b affected
2b188cc1bb857a9d4701ae59aa7768b5124e262e< 4e24041ba86d50aaa4c792ae2c88ed01b3d96243 affected
2b188cc1bb857a9d4701ae59aa7768b5124e262e< 9e8debb8e51354b201db494689198078ec2c1e75 affected
2b188cc1bb857a9d4701ae59aa7768b5124e262e< 003d2996964c03dfd34860500428f4cdf1f5879e affected
2b188cc1bb857a9d4701ae59aa7768b5124e262e< 26b8c48f369b7591f5679e0b90612f4862a32929 affected
2b188cc1bb857a9d4701ae59aa7768b5124e262e< 1d60d74e852647255bd8e76f5a22dc42531e4389 affected
5.1 affected
< 5.1 unaffected
… +6 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-53052

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
io_uring/rw: fix missing NOWAIT check for O_DIRECT start write
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: io_uring/rw: fix missing NOWAIT check for O_DIRECT start write When io_uring starts a write, it'll call kiocb_start_write() to bump the super block rwsem, preventing any freezes from happening while that write is in-flight. The freeze side will grab that rwsem for writing, excluding any new writers from happening and waiting for existing writes to finish. But io_uring unconditionally uses kiocb_start_write(), which will block if someone is currently attempting to freeze the mount point. This causes a deadlock where freeze is waiting for previous writes to complete, but the previous writes cannot complete, as the task that is supposed to complete them is blocked waiting on starting a new write. This results in the following stuck trace showing that dependency with the write blocked starting a new write: task:fio state:D stack:0 pid:886 tgid:886 ppid:876 Call trace: __switch_to+0x1d8/0x348 __schedule+0x8e8/0x2248 schedule+0x110/0x3f0 percpu_rwsem_wait+0x1e8/0x3f8 __percpu_down_read+0xe8/0x500 io_write+0xbb8/0xff8 io_issue_sqe+0x10c/0x1020 io_submit_sqes+0x614/0x2110 __arm64_sys_io_uring_enter+0x524/0x1038 invoke_syscall+0x74/0x268 el0_svc_common.constprop.0+0x160/0x238 do_el0_svc+0x44/0x60 el0_svc+0x44/0xb0 el0t_64_sync_handler+0x118/0x128 el0t_64_sync+0x168/0x170 INFO: task fsfreeze:7364 blocked for more than 15 seconds. Not tainted 6.12.0-rc5-00063-g76aaf945701c #7963 with the attempting freezer stuck trying to grab the rwsem: task:fsfreeze state:D stack:0 pid:7364 tgid:7364 ppid:995 Call trace: __switch_to+0x1d8/0x348 __schedule+0x8e8/0x2248 schedule+0x110/0x3f0 percpu_down_write+0x2b0/0x680 freeze_super+0x248/0x8a8 do_vfs_ioctl+0x149c/0x1b18 __arm64_sys_ioctl+0xd0/0x1a0 invoke_syscall+0x74/0x268 el0_svc_common.constprop.0+0x160/0x238 do_el0_svc+0x44/0x60 el0_svc+0x44/0xb0 el0t_64_sync_handler+0x118/0x128 el0t_64_sync+0x168/0x170 Fix this by having the io_uring side honor IOCB_NOWAIT, and only attempt a blocking grab of the super block rwsem if it isn't set. For normal issue where IOCB_NOWAIT would always be set, this returns -EAGAIN which will have io_uring core issue a blocking attempt of the write. That will in turn also get completions run, ensuring forward progress. Since freezing requires CAP_SYS_ADMIN in the first place, this isn't something that can be triggered by a regular user.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于缺少NOWAIT检查。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 2b188cc1bb857a9d4701ae59aa7768b5124e262e ~ 485d9232112b17f389b29497ff41b97b3189546b -
Linux Linux 5.1 -

II. Public POCs for CVE-2024-53052

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-53052

请登录查看更多情报信息。

Patches & Fixes for CVE-2024-53052 (4)

Same Patch Batch · Linux · 2024-11-19 · 88 CVEs total

CVE-2024-50283 9.8 CRITICAL ksmbd: fix slab-use-after-free in smb3_preauth_hash_rsp
CVE-2024-50286 9.8 CRITICAL ksmbd: fix slab-use-after-free in ksmbd_smb2_session_create
CVE-2024-50276 9.8 CRITICAL net: vertexcom: mse102x: Fix possible double free of TX skb
CVE-2024-53066 9.8 CRITICAL nfs: Fix KMSAN warning in decode_getfattr_attrs()
CVE-2024-53058 9.4 CRITICAL net: stmmac: TSO: Fix unbalanced DMA map/unmap for non-paged SKB data
CVE-2024-53082 8.4 HIGH virtio_net: Add hash_key_length check
CVE-2024-50299 8.2 HIGH sctp: properly validate chunk size in sctp_sf_ootb()
CVE-2024-50293 7.8 HIGH net/smc: do not leave a dangling sk pointer in __smc_create()
CVE-2024-50291 7.8 HIGH media: dvb-core: add missing buffer index check
CVE-2024-50294 7.8 HIGH rxrpc: Fix missing locking causing hanging calls
CVE-2024-53044 7.8 HIGH net/sched: sch_api: fix xa_insert() error path in tcf_block_get_ext()
CVE-2024-50288 7.8 HIGH media: vivid: fix buffer overwrite when using > 32 buffers
CVE-2024-53063 7.8 HIGH media: dvbdev: prevent the risk of out of memory access
CVE-2024-53088 7.8 HIGH i40e: fix race condition by adding filter's intermediate sync state
CVE-2024-53080 7.8 HIGH drm/panthor: Lock XArray when getting entries for the VM
CVE-2024-53079 7.8 HIGH mm/thp: fix deferred split unqueue naming and locking
CVE-2024-53076 7.8 HIGH iio: gts-helper: Fix memory leaks for the error path of iio_gts_build_avail_scale_table()
CVE-2024-50264 7.8 HIGH vsock/virtio: Initialization of the dangling pointer occurring in vsk->trans
CVE-2024-50301 7.8 HIGH security/keys: fix slab-out-of-bounds in key_task_permission
CVE-2024-50300 7.8 HIGH regulator: rtq2208: Fix uninitialized use of regulator_config

Showing top 20 of 88 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2024-53052

No comments yet


Leave a comment