CVE-2026-64580

xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst()

State
Published
Severity
7.8 High
Published
Aug 5, 2026
Updated
Oct 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

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 ...

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before 97e032e5733e49471fb73de117ea2ac1ac7c479aAffected
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before df6856c2dda9187601d29b5fbd7a81b3b178cedfAffected
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before 43de8a49335e611adb271bbd52e84dfbc11fc185Affected
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before ff636d7b7cba6dea82ecf580415ea57f2c1a11b6Affected
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before e078da1b4e11390cff3201c19a9a1fe70c5b934fAffected
  • 84c4a9dfbf430861e7588d95ae3ff61535dca351 to before 136992de9bb91871084ae52d172610541c76e4d2Affected
  • a7e22d0c0e81dde129a51ee413644124f4b59954Affected
  • 01b0d887f67a388fb2a658ee2bdd74e5ba146818Affected
  • a98124aac0b5adc5de8ae54f11322781cb4d85c3Affected
  • e27b7bee743d921f037b1da6f071237345bef7c1Affected
  • 3.0.79 to before 3.1Affected
  • 3.2.46 to before 3.3Affected
  • 3.4.46 to before 3.5Affected
  • 3.9.3 to before 3.10Affected
LinuxLinux
  • 3.10Affected
  • before 3.10Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.148 through 6.6.*Not affected
  • 6.12.101 through 6.12.*Not affected
  • 6.18.42 through 6.18.*Not affected
  • 7.1.6 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.