ipv6: release nexthop on device removal
In the Linux kernel, the following vulnerability has been resolved: ipv6: release nexthop on device removal The CI is hitting some aperiodic hangup at device removal time in the pmtu.sh self-test: unregister_netdevice: waiting for veth_A-R1 to become free. Usage count = 6 ref_tracker: veth_A-R1@ffff888013df15d8 has 1/5 users at dst_init+0x84/0x4a0 dst_alloc+0x97/0x150 ip6_dst_alloc+0x23/0x90 ip6_rt_pcpu_alloc+0x1e6/0x520 ip6_pol_route+0x56f/0x840 fib6_rule_lookup+0x334/0x630 ip6_route_output_flags+0x259/0x480 ip6_dst_lookup_tail.constprop.0+0x5c2/0x940 ip6_dst_lookup_flow+0x88/0x190 udp_tunnel6_dst_lookup+0x2a7/0x4c0 vxlan_xmit_one+0xbde/0x4a50 [vxlan] vxlan_xmit+0x9ad/0xf20 [vxlan] dev_hard_start_xmit+0x10e/0x360 __dev_queue_xmit+0xf95/0x18c0 arp_solicit+0x4a2/0xe00 neigh_probe+0xaa/0xf0 While the first suspect is the dst_cache, explicitly tracking the dst owing the last device reference via probes proved such dst is held by the nexthop in the originating fib6_info. Similar to commit f5b51fe804ec ("ipv6: route: purge exception on removal"), we need to explicitly release the originating fib info when disconnecting a to-be-removed device from a live ipv6 dst: move the fib6_info cleanup into ip6_dst_ifdown(). Tested running: ./pmtu.sh cleanup_ipv6_exception in a tight loop for more than 400 iterations with no spat, running an unpatched kernel I observed a splat every ~10 iterations.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.15.181, 6.1.120, 6.11.11, 6.12.2, 6.6.64
- CVEs
- CVE-2024-56751
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 05:27 UTC · Revision 1
Source evidence
In the Linux kernel, the following vulnerability has been resolved: ipv6: release nexthop on device removal The CI is hitting some aperiodic hangup at device removal time in the pmtu.sh self-test: unregister_netdevice: waiting for veth_A-R1 to become free. Usage count = 6 ref_tracker: veth_A-R1@ffff888013df15d8 has 1/5 users at dst_init+0x84/0x4a0 dst_alloc+0x97/0x150 ip6_dst_alloc+0x23/0x90 ip6_rt_pcpu_alloc+0x1e6/0x520 ip6_pol_route+0x56f/0x840 fib6_rule_lookup+0x334/0x630 ip6_route_output_flags+0x259/0x480 ip6_dst_lookup_tail.constprop.0+0x5c2/0x940 ip6_dst_lookup_flow+0x88/0x190 udp_tunnel6_dst_lookup+0x2a7/0x4c0 vxlan_xmit_one+0xbde/0x4a50 [vxlan] vxlan_xmit+0x9ad/0xf20 [vxlan] dev_hard_start_xmit+0x10e/0x360 __dev_queue_xmit+0xf95/0x18c0 arp_solicit+0x4a2/0xe00 neigh_probe+0xaa/0xf0 While the first suspect is the dst_cache, explicitly tracking the dst owing the last device reference via probes proved such dst is held by the nexthop in the originating fib6_info. Similar to commit f5b51fe804ec ("ipv6: route: purge exception on removal"), we need to explicitly release the originating fib info when disconnecting a to-be-removed device from a live ipv6 dst: move the fib6_info cleanup into ip6_dst_ifdown(). Tested running: ./pmtu.sh cleanup_ipv6_exception in a tight loop for more than 400 iterations with no spat, running an unpatched kernel I observed a splat every ~10 iterations.
osv:CVE-2024-56751
Kernel
Fixed versions: 5.15.181, 6.1.120, 6.6.64, 6.11.11, 6.12.2
Complete source record
{
"id": "a7554565681a7fb1cdc7cb51d930878b9c33eca52459ec9862d8806bbd82fe5e",
"url": "https://osv.dev/vulnerability/CVE-2024-56751",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "ipv6: release nexthop on device removal",
"summary": "In the Linux kernel, the following vulnerability has been resolved: ipv6: release nexthop on device removal The CI is hitting some aperiodic hangup at device removal time in the pmtu.sh self-test: unregister_netdevice: waiting for veth_A-R1 to become free. Usage count = 6 ref_tracker: veth_A-R1@ffff888013df15d8 has 1/5 users at dst_init+0x84/0x4a0 dst_alloc+0x97/0x150 ip6_dst_alloc+0x23/0x90 ip6_rt_pcpu_alloc+0x1e6/0x520 ip6_pol_route+0x56f/0x840 fib6_rule_lookup+0x334/0x630 ip6_route_output_flags+0x259/0x480 ip6_dst_lookup_tail.constprop.0+0x5c2/0x940 ip6_dst_lookup_flow+0x88/0x190 udp_tunnel6_dst_lookup+0x2a7/0x4c0 vxlan_xmit_one+0xbde/0x4a50 [vxlan] vxlan_xmit+0x9ad/0xf20 [vxlan] dev_hard_start_xmit+0x10e/0x360 __dev_queue_xmit+0xf95/0x18c0 arp_solicit+0x4a2/0xe00 neigh_probe+0xaa/0xf0 While the first suspect is the dst_cache, explicitly tracking the dst owing the last device reference via probes proved such dst is held by the nexthop in the originating fib6_info. Similar to commit f5b51fe804ec (\"ipv6: route: purge exception on removal\"), we need to explicitly release the originating fib info when disconnecting a to-be-removed device from a live ipv6 dst: move the fib6_info cleanup into ip6_dst_ifdown(). Tested running: ./pmtu.sh cleanup_ipv6_exception in a tight loop for more than 400 iterations with no spat, running an unpatched kernel I observed a splat every ~10 iterations.",
"evidence": "osv:CVE-2024-56751",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.15.181",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.120",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.64",
"evidence": "/affected/1/ranges"
},
{
"value": "6.11.11",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.2",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2024-56751",
"aliases": [
"CVE-2024-56751"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "f88d8ea67fbdbac7a64bfa6ed9a2ba27bb822f74"
},
{
"fixed": "77aa9855a878fb43f547ddfbda3127a1e88ad31a"
},
{
"fixed": "b2f26a27ea3f72f75d18330f76f5d1007c791848"
},
{
"fixed": "43e25adc80269f917d2a195f0d59f74cdd182955"
},
{
"fixed": "a3c3f8a4d025acc8c857246ec2b812c59102487a"
},
{
"fixed": "0e4c6faaef8a24b762a24ffb767280e263ef8e10"
},
{
"fixed": "eb02688c5c45c3e7af7e71f036a7144f5639cbfe"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56751.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.3.0"
},
{
"fixed": "5.15.181"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.120"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.64"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.11.11"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.12.0"
},
{
"fixed": "6.12.2"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56751.json"
}
}
],
"modified": "2026-10-28T02:30:26.460115803Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/0e4c6faaef8a24b762a24ffb767280e263ef8e10",
"https://git.kernel.org/stable/c/43e25adc80269f917d2a195f0d59f74cdd182955",
"https://git.kernel.org/stable/c/77aa9855a878fb43f547ddfbda3127a1e88ad31a",
"https://git.kernel.org/stable/c/a3c3f8a4d025acc8c857246ec2b812c59102487a",
"https://git.kernel.org/stable/c/b2f26a27ea3f72f75d18330f76f5d1007c791848",
"https://git.kernel.org/stable/c/eb02688c5c45c3e7af7e71f036a7144f5639cbfe",
"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56751.json",
"https://nvd.nist.gov/vuln/detail/CVE-2024-56751",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56751.json"
}
},
"related_cves": [
{
"value": "CVE-2024-56751",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 492730,
"published_at": "2024-12-29T11:30:16.805+00:00"
}