CVE-2026-89988 kprobes: Protect kprobe_blacklist with RCU
A use-after-free vulnerability in the Linux kernel's kprobes subsystem allows attackers to cause denial of service or execute arbitrary code via concurrent module unloading.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-89988?
CVE-2026-89988 is a high-severity use after free vulnerability in Linux, published on 16 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
kprobes: Protect kprobe_blacklist with RCU
__within_kprobe_blacklist() traverses kprobe_blacklist without holding kprobe_mutex. When a module is unloaded, kprobe_remove_area_blacklist() removes blacklist entries and immediately frees them with kfree(). A concurrent call to within_kprobe_blacklist() can therefore dereference freed memory.
Furthermore, within_kprobe_blacklist() can be called in atomic or non-preemptible contexts where the sleeping kprobe_mutex cannot be taken.
Protect kprobe_blacklist with RCU. Use guard(rcu)() and list_for_each_entry_rcu() for traversal, list_add_tail_rcu() for insertions, list_del_rcu() for deletions, and kfree_rcu() to reclaim entries safely after a grace period.
Which versions are affected by CVE-2026-89988?
How do I fix CVE-2026-89988?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2026-89988 being exploited?
There is no known exploitation of CVE-2026-89988 in the wild and no public exploit code.
Sources
Also known as AZL-101195, BELL-CVE-2026-89988, DEBIAN-CVE-2026-89988, GHSA-8536-v82h-gp8m, UBUNTU-CVE-2026-89988.