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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2025-38517— lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users()

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存在安全漏洞,该漏洞源于alloc_tag_top_users尝试获取不存在的锁,可能导致空指针解引用。

AI Predicted 5.5 Difficulty: Easy EPSS 0.14% · P4

Possible ATT&CK Techniques 1 AI

T1529 · System Shutdown/Reboot

Affected Version Matrix 8

VendorProduct Version RangeStatus
Linux Linux 1438d349d16b78d88f9e978a4a5496f078c8191b< febc0b5dbabda414565bdfaaaa59d26f787d5fe7 affected
1438d349d16b78d88f9e978a4a5496f078c8191b< 22bf79c0c2301b6e15a688220284b147774d277e affected
1438d349d16b78d88f9e978a4a5496f078c8191b< 99af22cd34688cc0d535a1919e0bea4cbc6c1ea1 affected
6.10 affected
< 6.10 unaffected
6.12.39≤ 6.12.* unaffected
6.15.7≤ 6.15.* unaffected
6.16≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-38517

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
lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users()
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users() alloc_tag_top_users() attempts to lock alloc_tag_cttype->mod_lock even when the alloc_tag_cttype is not allocated because: 1) alloc tagging is disabled because mem profiling is disabled (!alloc_tag_cttype) 2) alloc tagging is enabled, but not yet initialized (!alloc_tag_cttype) 3) alloc tagging is enabled, but failed initialization (!alloc_tag_cttype or IS_ERR(alloc_tag_cttype)) In all cases, alloc_tag_cttype is not allocated, and therefore alloc_tag_top_users() should not attempt to acquire the semaphore. This leads to a crash on memory allocation failure by attempting to acquire a non-existent semaphore: Oops: general protection fault, probably for non-canonical address 0xdffffc000000001b: 0000 [#3] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x00000000000000d8-0x00000000000000df] CPU: 2 UID: 0 PID: 1 Comm: systemd Tainted: G D 6.16.0-rc2 #1 VOLUNTARY Tainted: [D]=DIE Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:down_read_trylock+0xaa/0x3b0 Code: d0 7c 08 84 d2 0f 85 a0 02 00 00 8b 0d df 31 dd 04 85 c9 75 29 48 b8 00 00 00 00 00 fc ff df 48 8d 6b 68 48 89 ea 48 c1 ea 03 <80> 3c 02 00 0f 85 88 02 00 00 48 3b 5b 68 0f 85 53 01 00 00 65 ff RSP: 0000:ffff8881002ce9b8 EFLAGS: 00010016 RAX: dffffc0000000000 RBX: 0000000000000070 RCX: 0000000000000000 RDX: 000000000000001b RSI: 000000000000000a RDI: 0000000000000070 RBP: 00000000000000d8 R08: 0000000000000001 R09: ffffed107dde49d1 R10: ffff8883eef24e8b R11: ffff8881002cec20 R12: 1ffff11020059d37 R13: 00000000003fff7b R14: ffff8881002cec20 R15: dffffc0000000000 FS: 00007f963f21d940(0000) GS:ffff888458ca6000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f963f5edf71 CR3: 000000010672c000 CR4: 0000000000350ef0 Call Trace: <TASK> codetag_trylock_module_list+0xd/0x20 alloc_tag_top_users+0x369/0x4b0 __show_mem+0x1cd/0x6e0 warn_alloc+0x2b1/0x390 __alloc_frozen_pages_noprof+0x12b9/0x21a0 alloc_pages_mpol+0x135/0x3e0 alloc_slab_page+0x82/0xe0 new_slab+0x212/0x240 ___slab_alloc+0x82a/0xe00 </TASK> As David Wang points out, this issue became easier to trigger after commit 780138b12381 ("alloc_tag: check mem_profiling_support in alloc_tag_init"). Before the commit, the issue occurred only when it failed to allocate and initialize alloc_tag_cttype or if a memory allocation fails before alloc_tag_init() is called. After the commit, it can be easily triggered when memory profiling is compiled but disabled at boot. To properly determine whether alloc_tag_init() has been called and its data structures initialized, verify that alloc_tag_cttype is a valid pointer before acquiring the semaphore. If the variable is NULL or an error value, it has not been properly initialized. In such a case, just skip and do not attempt to acquire the semaphore. [harry.yoo@oracle.com: v3]
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存在安全漏洞,该漏洞源于alloc_tag_top_users尝试获取不存在的锁,可能导致空指针解引用。
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 1438d349d16b78d88f9e978a4a5496f078c8191b ~ febc0b5dbabda414565bdfaaaa59d26f787d5fe7 -
Linux Linux 6.10 -

II. Public POCs for CVE-2025-38517

# 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-38517

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-08-16 · 59 CVEs total

CVE-2025-38527 9.8 CRITICAL smb: client: fix use-after-free in cifs_oplock_break
CVE-2025-38533 9.8 CRITICAL net: libwx: fix the using of Rx buffer DMA
CVE-2025-38552 9.4 CRITICAL mptcp: plug races between subflow fail and subflow creation
CVE-2023-3867 9.1 CRITICAL ksmbd: fix out of bounds read in smb2_sess_setup
CVE-2023-4515 9.1 CRITICAL ksmbd: validate command request size
CVE-2023-32249 9.1 CRITICAL ksmbd: not allow guest user on multichannel
CVE-2025-38512 8.8 HIGH wifi: prevent A-MSDU attacks in mesh networks
CVE-2025-38511 8.8 HIGH drm/xe/pf: Clear all LMTT pages on alloc
CVE-2023-4130 8.1 HIGH ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea()
CVE-2023-3865 8.1 HIGH ksmbd: fix out-of-bound read in smb2_write
CVE-2025-38539 7.8 HIGH tracing: Add down_write(trace_event_sem) when adding trace event
CVE-2025-38532 7.8 HIGH net: libwx: properly reset Rx ring descriptor
CVE-2025-38542 7.8 HIGH net: appletalk: Fix device refcount leak in atrtr_create()
CVE-2025-38536 7.8 HIGH net: airoha: fix potential use-after-free in airoha_npu_get()
CVE-2025-38502 7.8 HIGH bpf: Fix oob access in cgroup local storage
CVE-2025-38550 7.8 HIGH ipv6: mcast: Delay put pmc->idev in mld_del_delrec()
CVE-2025-38514 7.5 HIGH rxrpc: Fix oops due to non-existence of prealloc backlog struct
CVE-2025-38501 7.5 HIGH ksmbd: limit repeated connections from clients with the same IP
CVE-2025-38524 7.5 HIGH rxrpc: Fix recv-recv race of completed call
CVE-2025-38526 7.5 HIGH ice: add NULL check in eswitch lag check

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-38517

No comments yet


Leave a comment