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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-43121— io_uring/zcrx: fix user_ref race between scrub and refill paths

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存在安全漏洞,该漏洞源于io_uring/zcrx中user_ref在scrub和refill路径之间存在竞争条件,可能导致双重释放。

AI Predicted 8.8 Difficulty: Easy EPSS 0.11% · P1

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 34a3e60821ab9f335a58d43a88cccdbefdebdec3< a94f096e28bfc7975163a6b80f1c8f323efe317a affected
34a3e60821ab9f335a58d43a88cccdbefdebdec3< 485dc691257b96e6d3bdc25b0eff2daadcc5c46c affected
34a3e60821ab9f335a58d43a88cccdbefdebdec3< 003049b1c4fb8aabb93febb7d1e49004f6ad653b affected
6.15 affected
< 6.15 unaffected
6.18.16≤ 6.18.* unaffected
6.19.6≤ 6.19.* unaffected
7.0≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-43121

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/zcrx: fix user_ref race between scrub and refill paths
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: io_uring/zcrx: fix user_ref race between scrub and refill paths The io_zcrx_put_niov_uref() function uses a non-atomic check-then-decrement pattern (atomic_read followed by separate atomic_dec) to manipulate user_refs. This is serialized against other callers by rq_lock, but io_zcrx_scrub() modifies the same counter with atomic_xchg() WITHOUT holding rq_lock. On SMP systems, the following race exists: CPU0 (refill, holds rq_lock) CPU1 (scrub, no rq_lock) put_niov_uref: atomic_read(uref) - 1 // window opens atomic_xchg(uref, 0) - 1 return_niov_freelist(niov) [PUSH #1] // window closes atomic_dec(uref) - wraps to -1 returns true return_niov(niov) return_niov_freelist(niov) [PUSH #2: DOUBLE-FREE] The same niov is pushed to the freelist twice, causing free_count to exceed nr_iovs. Subsequent freelist pushes then perform an out-of-bounds write (a u32 value) past the kvmalloc'd freelist array into the adjacent slab object. Fix this by replacing the non-atomic read-then-dec in io_zcrx_put_niov_uref() with an atomic_try_cmpxchg loop that atomically tests and decrements user_refs. This makes the operation safe against concurrent atomic_xchg from scrub without requiring scrub to acquire rq_lock. [pavel: removed a warning and a comment]
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存在安全漏洞,该漏洞源于io_uring/zcrx中user_ref在scrub和refill路径之间存在竞争条件,可能导致双重释放。
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 34a3e60821ab9f335a58d43a88cccdbefdebdec3 ~ a94f096e28bfc7975163a6b80f1c8f323efe317a -
Linux Linux 6.15 -

II. Public POCs for CVE-2026-43121

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-43121

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

Patches & Fixes for CVE-2026-43121 (3)

Same Patch Batch · Linux · 2026-05-06 · 224 CVEs total

CVE-2026-43208 9.8 CRITICAL net: do not pass flow_id to set_rps_cpu()
CVE-2026-43125 9.8 CRITICAL dlm: validate length in dlm_search_rsb_tree
CVE-2026-43198 9.8 CRITICAL tcp: fix potential race in tcp_v6_syn_recv_sock()
CVE-2026-43186 9.8 CRITICAL ipv6: ioam: fix heap buffer overflow in __ioam6_fill_trace_data()
CVE-2026-43185 9.8 CRITICAL ksmbd: fix signededness bug in smb_direct_prepare_negotiation()
CVE-2026-43114 9.4 CRITICAL netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry
CVE-2026-43117 9.1 CRITICAL btrfs: tracepoints: get correct superblock from dentry in event btrfs_sync_file()
CVE-2026-43197 9.1 CRITICAL netconsole: avoid OOB reads, msg is not nul-terminated
CVE-2026-43083 9.1 CRITICAL net: ioam6: fix OOB and missing lock
CVE-2026-43158 8.8 HIGH xfs: fix freemap adjustments when adding xattrs to leaf blocks
CVE-2026-43112 8.8 HIGH fs/smb/client: fix out-of-bounds read in cifs_sanitize_prepath
CVE-2026-43113 8.8 HIGH wifi: wl1251: validate packet IDs before indexing tx_frames
CVE-2026-43110 8.8 HIGH wifi: brcmfmac: validate bsscfg indices in IF events
CVE-2026-43249 8.8 HIGH 9p/xen: protect xen_9pfs_front_free against concurrent calls
CVE-2026-43239 8.8 HIGH smb: client: prevent races in ->query_interfaces()
CVE-2026-43232 8.8 HIGH net: wan: farsync: Fix use-after-free bugs caused by unfinished tasklets
CVE-2026-43283 8.8 HIGH net: ethernet: ec_bhf: Fix dma_free_coherent() dma handle
CVE-2026-43172 8.8 HIGH wifi: iwlwifi: fix 22000 series SMEM parsing
CVE-2026-43176 8.8 HIGH wifi: rtw89: pci: validate release report content before using for RTL8922DE
CVE-2026-43215 8.8 HIGH cifs: Fix locking usage for tcon fields

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

IV. Related Vulnerabilities

V. Comments for CVE-2026-43121

No comments yet


Leave a comment