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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-40214— af_unix: Initialise scc_index in unix_add_edge().

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存在安全漏洞,该漏洞源于未初始化scc_index,可能导致垃圾回收错误。

CVSS 7.8 · High EPSS 0.15% · P3

Possible ATT&CK Techniques 1 AI

T1068 · Exploitation for Privilege Escalation

Affected Version Matrix 14

VendorProduct Version RangeStatus
Linux Linux adfb68b39b39767d6bfb53e48c4f19c183765686< 20003fbb9174121b27bd1da6ebe61542ac4c327d affected
d23802221f6755e104606864067c71af8cdb6788< 4cd8d755c7d4f515dd9abf483316aca2f1b7b0f3 affected
ad081928a8b0f57f269df999a28087fce6f2b6ce< db81ad20fd8aef7cc7d536c52ee5ea4c1f979128 affected
ad081928a8b0f57f269df999a28087fce6f2b6ce< 1aa7e40ee850c9053e769957ce6541173891204d affected
ad081928a8b0f57f269df999a28087fce6f2b6ce< 60e6489f8e3b086bd1130ad4450a2c112e863791 affected
6.1.141< 6.1.159 affected
6.6.93< 6.6.117 affected
6.10 affected
… +6 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-40214

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
af_unix: Initialise scc_index in unix_add_edge().
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: af_unix: Initialise scc_index in unix_add_edge(). Quang Le reported that the AF_UNIX GC could garbage-collect a receive queue of an alive in-flight socket, with a nice repro. The repro consists of three stages. 1) 1-a. Create a single cyclic reference with many sockets 1-b. close() all sockets 1-c. Trigger GC 2) 2-a. Pass sk-A to an embryo sk-B 2-b. Pass sk-X to sk-X 2-c. Trigger GC 3) 3-a. accept() the embryo sk-B 3-b. Pass sk-B to sk-C 3-c. close() the in-flight sk-A 3-d. Trigger GC As of 2-c, sk-A and sk-X are linked to unix_unvisited_vertices, and unix_walk_scc() groups them into two different SCCs: unix_sk(sk-A)->vertex->scc_index = 2 (UNIX_VERTEX_INDEX_START) unix_sk(sk-X)->vertex->scc_index = 3 Once GC completes, unix_graph_grouped is set to true. Also, unix_graph_maybe_cyclic is set to true due to sk-X's cyclic self-reference, which makes close() trigger GC. At 3-b, unix_add_edge() allocates unix_sk(sk-B)->vertex and links it to unix_unvisited_vertices. unix_update_graph() is called at 3-a. and 3-b., but neither unix_graph_grouped nor unix_graph_maybe_cyclic is changed because both sk-B's listener and sk-C are not in-flight. 3-c decrements sk-A's file refcnt to 1. Since unix_graph_grouped is true at 3-d, unix_walk_scc_fast() is finally called and iterates 3 sockets sk-A, sk-B, and sk-X: sk-A -> sk-B (-> sk-C) sk-X -> sk-X This is totally fine. All of them are not yet close()d and should be grouped into different SCCs. However, unix_vertex_dead() misjudges that sk-A and sk-B are in the same SCC and sk-A is dead. unix_sk(sk-A)->scc_index == unix_sk(sk-B)->scc_index <-- Wrong! && sk-A's file refcnt == unix_sk(sk-A)->vertex->out_degree ^-- 1 in-flight count for sk-B -> sk-A is dead !? The problem is that unix_add_edge() does not initialise scc_index. Stage 1) is used for heap spraying, making a newly allocated vertex have vertex->scc_index == 2 (UNIX_VERTEX_INDEX_START) set by unix_walk_scc() at 1-c. Let's track the max SCC index from the previous unix_walk_scc() call and assign the max + 1 to a new vertex's scc_index. This way, we can continue to avoid Tarjan's algorithm while preventing misjudgments.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
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存在安全漏洞,该漏洞源于未初始化scc_index,可能导致垃圾回收错误。
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 adfb68b39b39767d6bfb53e48c4f19c183765686 ~ 20003fbb9174121b27bd1da6ebe61542ac4c327d -
Linux Linux 6.10 -

II. Public POCs for CVE-2025-40214

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

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

Same Patch Batch · Linux · 2025-12-04 · 53 CVEs total

CVE-2025-40252 9.8 CRITICAL net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()
CVE-2025-40261 9.8 CRITICAL nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()
CVE-2025-40258 9.8 CRITICAL mptcp: fix race condition in mptcp_schedule_work()
CVE-2025-40257 9.8 CRITICAL mptcp: fix a race in mptcp_pm_del_add_timer()
CVE-2025-40253 8.8 HIGH s390/ctcm: Fix double-kfree
CVE-2025-40266 8.2 HIGH KVM: arm64: Check the untrusted offset in FF-A memory share
CVE-2025-40245 7.8 HIGH nios2: ensure that memblock.current_limit is set when setting pfn limits
CVE-2025-40251 7.8 HIGH devlink: rate: Unset parent pointer in devl_rate_nodes_destroy
CVE-2025-40262 7.8 HIGH Input: imx_sc_key - fix memory corruption on unload
CVE-2025-40250 7.8 HIGH net/mlx5: Clean up only new IRQ glue on request_irq() failure
CVE-2025-40248 7.8 HIGH vsock: Ignore signal/timeout on connect() if already established
CVE-2025-40249 7.8 HIGH gpio: cdev: make sure the cdev fd is still active before emitting events
CVE-2025-40215 7.8 HIGH xfrm: delete x->tunnel as we delete x
CVE-2025-40244 7.8 HIGH hfsplus: fix KMSAN uninit-value issue in __hfsplus_ext_cache_extent()
CVE-2025-40243 7.8 HIGH hfs: fix KMSAN uninit-value issue in hfs_find_set_zero_bits()
CVE-2025-40241 7.8 HIGH erofs: fix crafted invalid cases for encoded extents
CVE-2025-40233 7.8 HIGH ocfs2: clear extent cache after moving/defragmenting extents
CVE-2025-40216 7.8 HIGH io_uring/rsrc: don't rely on user vaddr alignment
CVE-2025-40240 7.5 HIGH sctp: avoid NULL dereference when chunk data buffer is missing
CVE-2025-40242 7.0 HIGH gfs2: Fix unlikely race in gdlm_put_lock

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-40214

No comments yet


Leave a comment