CVE-2026-64580: Linux kernel · xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst()
Affects Linux kernelSource CVE Database V5
Not known to be exploited · CVSS 7.8 High · fixed in ff636d7b7cba6dea82ecf580415ea57f2c1a11b6 : patch Linux kernel soon.
Data as of 26 Oct 2026, 13:47 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 2% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- CISA SSVC
- Exploitation
- No evidence of active exploitation and no public proof of concept
- Automatable
- Attackers cannot reliably automate steps 1–4 of the kill chain
- Technical impact
- Total control over the software or total information disclosure
CISA SSVC assessment, 2026-10-16.
- Patch
- Available – fixed in ff636d7b7cba6dea82ecf580415ea57f2c1a11b6, e078da1b4e11390cff3201c19a9a1fe70c5b934f, df6856c2dda9187601d29b5fbd7a81b3b178cedf +7
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 5 Aug 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
In the Linux kernel, the following vulnerability has been resolved: xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst() On the error path where in6_dev_get(dev) returns NULL, xfrm6_fill_dst() releases the device reference with netdev_put() but leaves xdst->u.dst.dev set. dst_destroy() later calls netdev_put(dst->dev) again, so the same net_device reference is released twice, underflowing its refcount (ref_tracker WARNING + "unregister_netdevice: waiting for <dev> to become free"). Clear xdst->u.dst.dev after the netdev_put(), the same way the XFRM device-offload paths xfrm_dev_state_add() and xfrm_dev_policy_add() in net/xfrm/xfrm_device.c NULL ->dev when releasing the reference on error. ref_tracker: reference already released. ref_tracker: allocated in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:86) ... udpv6_sendmsg (net/ipv6/udp.c:1696) ... ref_tracker: freed in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:90) ... WARNING: lib/ref_tracker.c:322 at ref_tracker_free+0x58b/0x780 dst_destroy (net/core/dst.c:115) rcu_core handle_softirqs ...
References
- git.kernel.org/stable/c/97e032e5733e49471fb73de117ea2ac1ac7c479a (opens in a new tab)
- git.kernel.org/stable/c/df6856c2dda9187601d29b5fbd7a81b3b178cedf (opens in a new tab)
- git.kernel.org/stable/c/43de8a49335e611adb271bbd52e84dfbc11fc185 (opens in a new tab)
- git.kernel.org/stable/c/ff636d7b7cba6dea82ecf580415ea57f2c1a11b6 (opens in a new tab)
- git.kernel.org/stable/c/e078da1b4e11390cff3201c19a9a1fe70c5b934f (opens in a new tab)
- git.kernel.org/stable/c/136992de9bb91871084ae52d172610541c76e4d2 (opens in a new tab)