Skip to content
NewA calmer, faster ZeroHour

CVE-2026-89789

Use-after-free in Linux kernel GTP module (gtp_newlink error path)

CVSS 3.1
7.8 high
EPSS
—
Published
·
Modified
Analyze CVE-2026-89789 with Vani AIImpact, affected versions, exploitation status, mitigations and detection

CVE-2026-89789 is a use-after-free in the Linux kernel's GTP (GPRS Tunnelling Protocol) driver. When gtp_newlink() fails partway through setup (after gtp_encap_enable() or gtp_create_sockets()), its error path clears sk_user_data and immediately frees the tid_hash and addr_hash tables without waiting for an RCU grace period, so a concurrently running gtp_encap_recv() in softirq can still dereference a stale gtp_dev pointer and touch freed memory, as shown by the reported KASAN slab-use-after-free in gtp0_pdp_find(). Exploitation requires local access with the ability to create network links (CAP_NET_ADMIN-level privileges) plus an incoming GTP-over-UDP packet arriving on the socket at the right moment, and the resulting kernel UAF could yield memory corruption, crashes, or potentially local privilege escalation (CVSS 7.8). Only systems running kernels with the GTP module enabled and actively used for GTP tunnel endpoints (typical of mobile-core/EPC or telecom lab deployments) are affected. No public proof-of-concept and no confirmed exploitation have been reported.

What to do: Upgrade to a kernel release or stable branch that includes the fix adding synchronize_net() before the kfree calls in gtp_newlink()'s out_hashtable error path (no fixed version number is given in the advisory). If GTP tunnels are not needed, blacklist/unload the gtp module, and restrict untrusted local users' ability to create network links (CAP_NET_ADMIN) on multi-tenant hosts.

ProductAffected
Linux kernel GTP module (drivers/net/gtp.c)—
Estimated exposure
nicheunknown; plausibly no more than tens of thousands of specialized hosts (mobile-core gateways, telecom testbeds) run GTP endpoints — The kernel GTP module is used almost exclusively on EPC/mobile-core nodes and network research setups, no public internet-exposure scans enumerate GTP-enabled hosts, and triggering requires local link-creation privileges, so only a niche…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description · NVD

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: 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().

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

1 story