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

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-71152— net: dsa: properly keep track of conduit reference

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存在安全漏洞,该漏洞源于DSA对管道网络设备引用跟踪不当,可能导致引用计数错误。

AI Predicted 4.3 Difficulty: Hard EPSS 0.14% · P3

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 10

VendorProduct Version RangeStatus
Linux Linux 83c0afaec7b730b16c518aecc8e6246ec91b265e< ec2b34acb1894cfc10ed22d8277ca4f11e9f4b23 affected
83c0afaec7b730b16c518aecc8e6246ec91b265e< b358fc6ff3b35a29f7f677da1c67af67d0d560cb affected
83c0afaec7b730b16c518aecc8e6246ec91b265e< 0e766b77ba5093583dfe609fae0aa1545c46dbbd affected
83c0afaec7b730b16c518aecc8e6246ec91b265e< 06e219f6a706c367c93051f408ac61417643d2f9 affected
4.8 affected
< 4.8 unaffected
6.6.130≤ 6.6.* unaffected
6.12.78≤ 6.12.* unaffected
… +2 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-71152

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
net: dsa: properly keep track of conduit reference
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: net: dsa: properly keep track of conduit reference Problem description ------------------- DSA has a mumbo-jumbo of reference handling of the conduit net device and its kobject which, sadly, is just wrong and doesn't make sense. There are two distinct problems. 1. The OF path, which uses of_find_net_device_by_node(), never releases the elevated refcount on the conduit's kobject. Nominally, the OF and non-OF paths should result in objects having identical reference counts taken, and it is already suspicious that dsa_dev_to_net_device() has a put_device() call which is missing in dsa_port_parse_of(), but we can actually even verify that an issue exists. With CONFIG_DEBUG_KOBJECT_RELEASE=y, if we run this command "before" and "after" applying this patch: (unbind the conduit driver for net device eno2) echo 0000:00:00.2 > /sys/bus/pci/drivers/fsl_enetc/unbind we see these lines in the output diff which appear only with the patch applied: kobject: 'eno2' (ffff002009a3a6b8): kobject_release, parent 0000000000000000 (delayed 1000) kobject: '109' (ffff0020099d59a0): kobject_release, parent 0000000000000000 (delayed 1000) 2. After we find the conduit interface one way (OF) or another (non-OF), it can get unregistered at any time, and DSA remains with a long-lived, but in this case stale, cpu_dp->conduit pointer. Holding the net device's underlying kobject isn't actually of much help, it just prevents it from being freed (but we never need that kobject directly). What helps us to prevent the net device from being unregistered is the parallel netdev reference mechanism (dev_hold() and dev_put()). Actually we actually use that netdev tracker mechanism implicitly on user ports since commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA master to get rid of lockdep warnings"), via netdev_upper_dev_link(). But time still passes at DSA switch probe time between the initial of_find_net_device_by_node() code and the user port creation time, time during which the conduit could unregister itself and DSA wouldn't know about it. So we have to run of_find_net_device_by_node() under rtnl_lock() to prevent that from happening, and release the lock only with the netdev tracker having acquired the reference. Do we need to keep the reference until dsa_unregister_switch() / dsa_switch_shutdown()? 1: Maybe yes. A switch device will still be registered even if all user ports failed to probe, see commit 86f8b1c01a0a ("net: dsa: Do not make user port errors fatal"), and the cpu_dp->conduit pointers remain valid. I haven't audited all call paths to see whether they will actually use the conduit in lack of any user port, but if they do, it seems safer to not rely on user ports for that reference. 2. Definitely yes. We support changing the conduit which a user port is associated to, and we can get into a situation where we've moved all user ports away from a conduit, thus no longer hold any reference to it via the net device tracker. But we shouldn't let it go nonetheless - see the next change in relation to dsa_tree_find_first_conduit() and LAG conduits which disappear. We have to be prepared to return to the physical conduit, so the CPU port must explicitly keep another reference to it. This is also to say: the user ports and their CPU ports may not always keep a reference to the same conduit net device, and both are needed. As for the conduit's kobject for the /sys/class/net/ entry, we don't care about it, we can release it as soon as we hold the net device object itself. History and blame attribution ----------------------------- The code has been refactored so many times, it is very difficult to follow and properly attribute a blame, but I'll try to make a short history which I hope to be correct. We have two distinct probing paths: - one for OF, introduced in 2016 i ---truncated---
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存在安全漏洞,该漏洞源于DSA对管道网络设备引用跟踪不当,可能导致引用计数错误。
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 83c0afaec7b730b16c518aecc8e6246ec91b265e ~ ec2b34acb1894cfc10ed22d8277ca4f11e9f4b23 -
Linux Linux 4.8 -

II. Public POCs for CVE-2025-71152

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

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

Patches & Fixes for CVE-2025-71152 (2)

Same Patch Batch · Linux · 2026-01-23 · 34 CVEs total

CVE-2026-22984 9.8 CRITICAL libceph: prevent potential out-of-bounds reads in handle_auth_done()
CVE-2025-71159 9.8 CRITICAL btrfs: fix use-after-free warning in btrfs_get_or_create_delayed_node()
CVE-2025-71145 7.8 HIGH usb: phy: isp1301: fix non-OF device reference imbalance
CVE-2026-22980 7.8 HIGH nfsd: provide locking for v4_end_grace
CVE-2026-22988 7.8 HIGH arp: do not assume dev_hard_header() does not change skb->head
CVE-2025-71158 7.8 HIGH gpio: mpsse: ensure worker is torn down
CVE-2025-71155 7.8 HIGH KVM: s390: Fix gmap_helper_zap_one_page() again
CVE-2025-71146 7.5 HIGH netfilter: nf_conncount: fix leaked ct in error paths
CVE-2025-71161 7.5 HIGH dm-verity: disable recursive forward error correction
CVE-2026-22990 7.5 HIGH libceph: replace overzealous BUG_ON in osdmap_apply_incremental()
CVE-2026-22991 7.5 HIGH libceph: make free_choose_arg_map() resilient to partial allocation
CVE-2026-22992 7.5 HIGH libceph: return the handler error from mon_handle_auth_done()
CVE-2025-71150 7.5 HIGH ksmbd: Fix refcount leak when invalid session is found on session lookup
CVE-2026-22989 nfsd: check that server is running in unlock_filesystem
CVE-2026-22993 idpf: Fix RSS LUT NULL ptr issue after soft reset
CVE-2026-22987 net/sched: act_api: avoid dereferencing ERR_PTR in tcf_idrinfo_destroy
CVE-2026-22986 gpiolib: fix race condition for gdev->srcu
CVE-2026-22994 bpf: Fix reference count leak in bpf_prog_test_run_xdp()
CVE-2026-22985 idpf: Fix RSS LUT NULL pointer crash on early ethtool operations
CVE-2026-22995 ublk: fix use-after-free in ublk_partition_scan_work

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

IV. Related Vulnerabilities

V. Comments for CVE-2025-71152

No comments yet


Leave a comment