GHSA-GVVQ-54CJ-7XG4
Vulnerability from github – Published: 2026-10-18 18:31 – Updated: 2026-10-18 18:31In the Linux kernel, the following vulnerability has been resolved:
ipv6: Fix dst leak for uncached routes.
ip6_route_output_flags(), ip6_rt_put_flags(), and ip6_dst_check() detect an uncached route by list_empty(&rt->dst.rt_uncached), which replaced the static DST_NOCACHE flag check in commit a4c2fd7f7891 ("net: remove DST_NOCACHE flag").
When a device is unregistered, rt6_uncached_list_flush_dev() unlinks uncached routes tied to the device from rt6_uncached_list.
Previously, they were moved to another list with list_move() (__list_del_entry() + list_add()), and since commit 98aa546af5e4 ("inet: remove (struct uncached_list)->quarantine"), the routes are just unlinked with list_del_init().
If list_del_init() runs concurrently, list_empty() evaluates to true; ip6_route_output_flags() calls dst_hold_safe() incorrectly and ip6_rt_put_flags() skips ip6_rt_put(), leaking dst, and thus dev tied via rt->from as well.
The same race is partially fixed by commit 9a6f0c4d5796 ("dst: fix races in rt6_uncached_list_del() and rt_del_uncached_list()").
Let's check rt6->dst.rt_uncached_list instead.
Note that IPv4 does not have the same issue.
{
"affected": [],
"aliases": [
"CVE-2026-98596"
],
"database_specific": {
"cwe_ids": [],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-10-18T16:17:12Z",
"severity": null
},
"details": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: Fix dst leak for uncached routes.\n\nip6_route_output_flags(), ip6_rt_put_flags(), and ip6_dst_check()\ndetect an uncached route by list_empty(\u0026rt-\u003edst.rt_uncached),\nwhich replaced the static DST_NOCACHE flag check in commit\na4c2fd7f7891 (\"net: remove DST_NOCACHE flag\").\n\nWhen a device is unregistered, rt6_uncached_list_flush_dev()\nunlinks uncached routes tied to the device from rt6_uncached_list.\n\nPreviously, they were moved to another list with list_move()\n(__list_del_entry() + list_add()), and since commit 98aa546af5e4\n(\"inet: remove (struct uncached_list)-\u003equarantine\"), the routes\nare just unlinked with list_del_init().\n\nIf list_del_init() runs concurrently, list_empty() evaluates to\ntrue; ip6_route_output_flags() calls dst_hold_safe() incorrectly\nand ip6_rt_put_flags() skips ip6_rt_put(), leaking dst, and thus\ndev tied via rt-\u003efrom as well.\n\nThe same race is partially fixed by commit 9a6f0c4d5796 (\"dst:\nfix races in rt6_uncached_list_del() and rt_del_uncached_list()\").\n\nLet\u0027s check rt6-\u003edst.rt_uncached_list instead.\n\nNote that IPv4 does not have the same issue.",
"id": "GHSA-gvvq-54cj-7xg4",
"modified": "2026-10-18T18:31:55Z",
"published": "2026-10-18T18:31:55Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98596"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/5045aa25f3790dcdb158a58ac60ccf8da42959aa"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/be31fe6333f534155e6b408f1ef6d77974bb41aa"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/ed902d5546fb9c142b3216d8eec914fa1bc0aa80"
},
{
"type": "WEB",
"url": "https://git.kernel.org/stable/c/f9722746df13a8a29103c847ef56b02c11ce0963"
}
],
"schema_version": "1.4.0",
"severity": []
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.