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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-38196— io_uring/rsrc: validate buffer count with offset for cloning

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存在安全漏洞,该漏洞源于未验证缓冲区计数导致整数溢出。

AI Predicted 5.5 Difficulty: Easy EPSS 0.15% · P4

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux b16e920a1909da6799c43000db730d8fcdcae907< 0e23ac818f3afb16660b0ba384875d56a7013879 affected
b16e920a1909da6799c43000db730d8fcdcae907< 1d27f11bf02b38c431e49a17dee5c10a2b4c2e28 affected
6.13 affected
< 6.13 unaffected
6.15.4≤ 6.15.* unaffected
6.16≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-38196

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/rsrc: validate buffer count with offset for cloning
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: io_uring/rsrc: validate buffer count with offset for cloning syzbot reports that it can trigger a WARN_ON() for kmalloc() attempt that's too big: WARNING: CPU: 0 PID: 6488 at mm/slub.c:5024 __kvmalloc_node_noprof+0x520/0x640 mm/slub.c:5024 Modules linked in: CPU: 0 UID: 0 PID: 6488 Comm: syz-executor312 Not tainted 6.15.0-rc7-syzkaller-gd7fa1af5b33e #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : __kvmalloc_node_noprof+0x520/0x640 mm/slub.c:5024 lr : __do_kmalloc_node mm/slub.c:-1 [inline] lr : __kvmalloc_node_noprof+0x3b4/0x640 mm/slub.c:5012 sp : ffff80009cfd7a90 x29: ffff80009cfd7ac0 x28: ffff0000dd52a120 x27: 0000000000412dc0 x26: 0000000000000178 x25: ffff7000139faf70 x24: 0000000000000000 x23: ffff800082f4cea8 x22: 00000000ffffffff x21: 000000010cd004a8 x20: ffff0000d75816c0 x19: ffff0000dd52a000 x18: 00000000ffffffff x17: ffff800092f39000 x16: ffff80008adbe9e4 x15: 0000000000000005 x14: 1ffff000139faf1c x13: 0000000000000000 x12: 0000000000000000 x11: ffff7000139faf21 x10: 0000000000000003 x9 : ffff80008f27b938 x8 : 0000000000000002 x7 : 0000000000000000 x6 : 0000000000000000 x5 : 00000000ffffffff x4 : 0000000000400dc0 x3 : 0000000200000000 x2 : 000000010cd004a8 x1 : ffff80008b3ebc40 x0 : 0000000000000001 Call trace: __kvmalloc_node_noprof+0x520/0x640 mm/slub.c:5024 (P) kvmalloc_array_node_noprof include/linux/slab.h:1065 [inline] io_rsrc_data_alloc io_uring/rsrc.c:206 [inline] io_clone_buffers io_uring/rsrc.c:1178 [inline] io_register_clone_buffers+0x484/0xa14 io_uring/rsrc.c:1287 __io_uring_register io_uring/register.c:815 [inline] __do_sys_io_uring_register io_uring/register.c:926 [inline] __se_sys_io_uring_register io_uring/register.c:903 [inline] __arm64_sys_io_uring_register+0x42c/0xea8 io_uring/register.c:903 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151 el0_svc+0x58/0x17c arch/arm64/kernel/entry-common.c:767 el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:786 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600 which is due to offset + buffer_count being too large. The registration code checks only the total count of buffers, but given that the indexing is an array, it should also check offset + count. That can't exceed IORING_MAX_REG_BUFFERS either, as there's no way to reach buffers beyond that limit. There's no issue with registrering a table this large, outside of the fact that it's pointless to register buffers that cannot be reached, and that it can trigger this kmalloc() warning for attempting an allocation that is too large.
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存在安全漏洞,该漏洞源于未验证缓冲区计数导致整数溢出。
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 b16e920a1909da6799c43000db730d8fcdcae907 ~ 0e23ac818f3afb16660b0ba384875d56a7013879 -
Linux Linux 6.13 -

II. Public POCs for CVE-2025-38196

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

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-38196

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

Same Patch Batch · Linux · 2025-07-04 · 59 CVEs total

CVE-2025-38209 9.8 CRITICAL nvme-tcp: remove tag set when second admin queue config fails
CVE-2025-38211 9.8 CRITICAL RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction
CVE-2025-38174 8.8 HIGH thunderbolt: Do not double dequeue a configuration request
CVE-2025-38216 8.8 HIGH iommu/vt-d: Restore context entry setup order for aliased devices
CVE-2025-38233 7.8 HIGH powerpc64/ftrace: fix clobbered r15 during livepatching
CVE-2025-38230 7.8 HIGH jfs: validate AG parameters in dbMount() to prevent crashes
CVE-2025-38227 7.8 HIGH media: vidtv: Terminating the subsequent process of initialization failure
CVE-2025-38226 7.8 HIGH media: vivid: Change the siize of the composing
CVE-2025-38224 7.8 HIGH can: kvaser_pciefd: refine error prone echo_skb_max handling logic
CVE-2025-38218 7.8 HIGH f2fs: fix to do sanity check on sit_bitmap_size
CVE-2025-38232 7.8 HIGH NFSD: fix race between nfsd registration and exports_proc
CVE-2025-38212 7.8 HIGH ipc: fix to protect IPCS lookups using RCU
CVE-2025-38175 7.8 HIGH binder: fix yet another UAF in binder_devices
CVE-2025-38234 7.8 HIGH sched/rt: Fix race in push_rt_task
CVE-2025-38206 7.8 HIGH exfat: fix double free in delayed_free
CVE-2025-38204 7.8 HIGH jfs: fix array-index-out-of-bounds read in add_missing_indices
CVE-2025-38192 7.8 HIGH net: clear the dst when changing skb protocol
CVE-2025-38187 7.8 HIGH drm/nouveau: fix a use-after-free in r535_gsp_rpc_push()
CVE-2025-38184 7.8 HIGH tipc: fix null-ptr-deref when acquiring remote ip of ethernet bearer
CVE-2025-38180 7.8 HIGH net: atm: fix /proc/net/atm/lec handling

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-38196

No comments yet


Leave a comment