CVE-2026-89789 (GCVE-0-2026-89789)
Vulnerability from cvelistv5 – Published: 2026-09-16 08:48 – Updated: 2026-09-16 14:38
VLAI
EPSS
VEX
Title
gtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free
Summary
In the Linux kernel, the following vulnerability has been resolved:
gtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free
gtp_newlink()'s error path frees tid_hash and addr_hash without
waiting for an RCU grace period after clearing sk_user_data. A
concurrent gtp_encap_recv() in softirq may still hold the gtp_dev
pointer obtained via rcu_dereference_sk_user_data() and access the
freed memory.
BUG: KASAN: slab-use-after-free in gtp0_pdp_find+0x1f6/0x200 (gtp.c:152)
Call Trace:
<IRQ>
gtp0_pdp_find+0x1f6/0x200
gtp_encap_recv+0x527/0x24b0
udp_queue_rcv_one_skb+0x75f/0xc10
Add synchronize_net() before the kfree calls in out_hashtable, which
covers all error paths from both gtp_encap_enable() and
gtp_create_sockets().
Severity
7.8 (High)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
459aa660eb1d8ce67080da1983bb81d716aa5a69 , < fcafb2b1430824bae4258c01a439ec97ca0c6973
(git)
Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < 3ca3da5c305caa873ddb81e8c6b118143f6dd3d1 (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < 6f815c2fb6ab20385f81c353cdad0ea3b88132af (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < e3b9aa0773abd5d4ed90be41ce5306c146d5b09e (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < fd8396cfecbd904468c71362f08aaa25f96d5337 (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < 7677eb2cbf2cc7446de474c01a6b06277c0051e5 (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < 8d85498016a5bb56339734a14c276209fa65bafc (git) Affected: 459aa660eb1d8ce67080da1983bb81d716aa5a69 , < d989e22ae9802c52c56ad4284d0caf26696cf6ae (git) |
guessed | |
| Linux | Linux |
Affected:
4.7
Unaffected: 0 , < 4.7 (semver) Unaffected: 5.10.270 , ≤ 5.10.* (semver) Unaffected: 5.15.221 , ≤ 5.15.* (semver) Unaffected: 6.1.188 , ≤ 6.1.* (semver) Unaffected: 6.6.157 , ≤ 6.6.* (semver) Unaffected: 6.12.110 , ≤ 6.12.* (semver) Unaffected: 6.18.52 , ≤ 6.18.* (semver) Unaffected: 7.2.6 , ≤ 7.2.* (semver) Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fcafb2b1430824bae4258c01a439ec97ca0c6973",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "3ca3da5c305caa873ddb81e8c6b118143f6dd3d1",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "6f815c2fb6ab20385f81c353cdad0ea3b88132af",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "e3b9aa0773abd5d4ed90be41ce5306c146d5b09e",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "fd8396cfecbd904468c71362f08aaa25f96d5337",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "7677eb2cbf2cc7446de474c01a6b06277c0051e5",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "8d85498016a5bb56339734a14c276209fa65bafc",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
},
{
"lessThan": "d989e22ae9802c52c56ad4284d0caf26696cf6ae",
"status": "affected",
"version": "459aa660eb1d8ce67080da1983bb81d716aa5a69",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/gtp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.7"
},
{
"lessThan": "4.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.221",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.188",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.157",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.110",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.52",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.270",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3-rc1",
"versionStartIncluding": "4.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free\n\ngtp_newlink()\u0027s error path frees tid_hash and addr_hash without\nwaiting for an RCU grace period after clearing sk_user_data. A\nconcurrent gtp_encap_recv() in softirq may still hold the gtp_dev\npointer obtained via rcu_dereference_sk_user_data() and access the\nfreed memory.\n\n BUG: KASAN: slab-use-after-free in gtp0_pdp_find+0x1f6/0x200 (gtp.c:152)\n Call Trace:\n \u003cIRQ\u003e\n gtp0_pdp_find+0x1f6/0x200\n gtp_encap_recv+0x527/0x24b0\n udp_queue_rcv_one_skb+0x75f/0xc10\n\nAdd synchronize_net() before the kfree calls in out_hashtable, which\ncovers all error paths from both gtp_encap_enable() and\ngtp_create_sockets()."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is triggered from gtp_newlink()\u0027s RTM_NEWLINK error path (ip link add type gtp), a local rtnetlink configuration interface. Concurrent gtp_encap_recv() in softirq only uses already-freed tid_hash/addr_hash; a remote GTP-U peer cannot cause the free.\nAC:L - The attacker controls both sides of the RCU race: one thread issues RTM_NEWLINK that fails after setup_udp_tunnel_sock() (invalid second FD, IPv4/IPv6 family mismatch, or register_netdevice failure) while another floods UDP datagrams at the encap socket so gtp_encap_recv() still holds the gtp_dev pointer across the kfree.\nPR:L - Creating a GTP device requires CAP_NET_ADMIN in the target netns via rtnl_link_get_net_capable()/netlink_ns_capable(). Unprivileged users obtain this through user+network namespaces (unshare -Urn); gtp_link_ops has no extra init-namespace check and MODULE_ALIAS_RTNL_LINK(\"gtp\") permits module autoload.\nUI:N - The attacker opens its own UDP sockets, sends packets to them, and issues the failing RTM_NEWLINK from its own process. No separate victim action such as mounting a filesystem or opening a file is required.\nS:U - Impact is a host-kernel slab use-after-free in drivers/net/gtp.c, i.e. standard local privilege escalation within the same kernel security authority, not a KVM/Xen guest-to-host escape or IOMMU/DMA boundary bypass.\nC:H - gtp0_pdp_find()/gtp1_pdp_find() walk the attacker-sized freed tid_hash hlist under RCU. Heap spraying that slab yields a fake pdp_ctx and an arbitrary kernel read primitive, so Confidentiality is High per UAF guidance.\nI:H - A sprayed fake pdp_ctx is passed to gtp_rx(), which writes device stats, assigns skb-\u003edev, and calls __netif_rx(); combined with UAF heap reuse this is an arbitrary write and control-flow hijack primitive, so Integrity is High.\nA:H - KASAN reports slab-use-after-free in gtp0_pdp_find from gtp_encap_recv in softirq (udp_queue_rcv_one_skb). The UAF causes a kernel oops or panic even when not fully exploited, so Availability is High."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-16T14:38:38.871Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fcafb2b1430824bae4258c01a439ec97ca0c6973"
},
{
"url": "https://git.kernel.org/stable/c/3ca3da5c305caa873ddb81e8c6b118143f6dd3d1"
},
{
"url": "https://git.kernel.org/stable/c/6f815c2fb6ab20385f81c353cdad0ea3b88132af"
},
{
"url": "https://git.kernel.org/stable/c/e3b9aa0773abd5d4ed90be41ce5306c146d5b09e"
},
{
"url": "https://git.kernel.org/stable/c/fd8396cfecbd904468c71362f08aaa25f96d5337"
},
{
"url": "https://git.kernel.org/stable/c/7677eb2cbf2cc7446de474c01a6b06277c0051e5"
},
{
"url": "https://git.kernel.org/stable/c/8d85498016a5bb56339734a14c276209fa65bafc"
},
{
"url": "https://git.kernel.org/stable/c/d989e22ae9802c52c56ad4284d0caf26696cf6ae"
}
],
"title": "gtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89789",
"datePublished": "2026-09-16T08:48:25.689Z",
"dateReserved": "2026-09-11T19:38:34.766Z",
"dateUpdated": "2026-09-16T14:38:38.871Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-89789",
"date": "2026-09-16",
"epss": "0.0021",
"percentile": "0.11449"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-89789\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-16T09:17:09.697\",\"lastModified\":\"2026-09-16T15:18:09.107\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ngtp: add synchronize_net() in gtp_newlink() error path to prevent use-after-free\\n\\ngtp_newlink()\u0027s error path frees tid_hash and addr_hash without\\nwaiting for an RCU grace period after clearing sk_user_data. A\\nconcurrent gtp_encap_recv() in softirq may still hold the gtp_dev\\npointer obtained via rcu_dereference_sk_user_data() and access the\\nfreed memory.\\n\\n BUG: KASAN: slab-use-after-free in gtp0_pdp_find+0x1f6/0x200 (gtp.c:152)\\n Call Trace:\\n \u003cIRQ\u003e\\n gtp0_pdp_find+0x1f6/0x200\\n gtp_encap_recv+0x527/0x24b0\\n udp_queue_rcv_one_skb+0x75f/0xc10\\n\\nAdd synchronize_net() before the kfree calls in out_hashtable, which\\ncovers all error paths from both gtp_encap_enable() and\\ngtp_create_sockets().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/gtp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"fcafb2b1430824bae4258c01a439ec97ca0c6973\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"3ca3da5c305caa873ddb81e8c6b118143f6dd3d1\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"6f815c2fb6ab20385f81c353cdad0ea3b88132af\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"e3b9aa0773abd5d4ed90be41ce5306c146d5b09e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"fd8396cfecbd904468c71362f08aaa25f96d5337\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"7677eb2cbf2cc7446de474c01a6b06277c0051e5\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"8d85498016a5bb56339734a14c276209fa65bafc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"459aa660eb1d8ce67080da1983bb81d716aa5a69\",\"lessThan\":\"d989e22ae9802c52c56ad4284d0caf26696cf6ae\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/gtp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.7\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.7\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.270\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.221\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.188\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.157\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.110\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.52\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.6\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3ca3da5c305caa873ddb81e8c6b118143f6dd3d1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/6f815c2fb6ab20385f81c353cdad0ea3b88132af\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7677eb2cbf2cc7446de474c01a6b06277c0051e5\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8d85498016a5bb56339734a14c276209fa65bafc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d989e22ae9802c52c56ad4284d0caf26696cf6ae\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e3b9aa0773abd5d4ed90be41ce5306c146d5b09e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fcafb2b1430824bae4258c01a439ec97ca0c6973\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/fd8396cfecbd904468c71362f08aaa25f96d5337\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
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.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
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.
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.
Loading…
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.
Loading…