1
Get the exact kernel and distro version
2
Check it against a known list of exploits before trying anything by hand
3
Compile on a matching system when possible
Compiling directly on the target is simplest and guarantees ABI compatibility, if that’s not possible, matching the target’s glibc/kernel headers version elsewhere (a Docker container pinned to the same distro release works well) avoids exploits that compile fine but crash on the mismatch.
Dirty Frag (CVE-2026-43284, CVE-2026-43500)
Two separate bugs, one in the xfrm-ESP (IPsec) subsystem and one in RxRPC, that both let an unprivileged user corrupt the page cache the same way. Chained together, they let an attacker overwrite the on-disk content of a cached file, including a cached SUID binary, bypassing normal file permission checks entirely. All current Ubuntu releases were confirmed affected, a public PoC was released within days of disclosure.”Copy Fail” (CVE-2026-31431)
A logic flaw in the kernel’salgif_aead crypto module (the AF_ALG AEAD path), present since a 2017 optimization that let source and destination scatter-gather lists share memory pages. Chaining it with splice() gives an unprivileged user a controlled 4-byte write into a file’s page-cache backing, overwriting a cached SUID binary like /usr/bin/su gets arbitrary code executed as root on its next run. Works as a container escape too, since the page cache is shared with the host kernel. Affects kernels through 6.18.21, fixed in 6.18.22/6.19.12/7.0.
nf_tables Catch-All Use-After-Free (CVE-2026-23111)
Caused by a single inverted character in a conditional check insidenf_tables, the upstream fix was a one-line change. Triggerable by any unprivileged user when nf_tables is enabled and unprivileged user namespaces are available, both the default on most current distros. Public exploits followed disclosure within weeks, confirmed working against Debian Bookworm/Trixie, Ubuntu 22.04/24.04 LTS, and RHEL 10.
nf_tables Anonymous Set Use-After-Free (CVE-2023-32233)
A use-after-free innf_tables anonymous sets, temporary workspaces that are supposed to be cleared after use but, due to a reference-counting bug, can still be accessed and manipulated afterward. Affects kernels up to 6.3.1.
CVE-2022-25636 (netfilter nf_dup_netdev)
A heap out-of-bounds write innet/netfilter/nf_dup_netdev.c, affecting kernels 5.4 through 5.6.10. Nick Gregory’s write-up covers the discovery in detail.
Dirty Pipe (CVE-2022-0847)
Conceptually similar to Dirty Cow but newer and more reliable, a flaw in the Linux pipe implementation lets a user with only read access to a file overwrite its contents anyway, including files owned by root. Affects kernels 5.8 through 5.17.PwnKit / Polkit (CVE-2021-4034)
A memory corruption bug inpkexec (part of Polkit), present for over a decade before being disclosed and patched in January 2022. Works out of the box on most unpatched distros, pkexec is installed and SUID by default almost everywhere.
CVE-2021-22555 (netfilter)
A heap out-of-bounds write in the netfilter subsystem, affecting kernels 2.6 through 5.11.Sudo Heap Overflow / Baron Samedit (CVE-2021-3156)
A heap-based buffer overflow insudo itself, triggered without needing any sudo rule at all, just local shell access. Affects sudo 1.8.31 (Ubuntu 20.04), 1.8.27 (Debian 10), and 1.9.2 (Fedora 33), among others.
Dirty Cow (CVE-2016-5195)
One of the most well-known Linux kernel privilege escalation bugs, a race condition in how the kernel’s memory subsystem handles copy-on-write, lets a user overwrite memory mapped as read-only. Affects essentially every kernel from 2007 until the October 2016 patch.Screen 4.5.0 (GNU)
An older but still occasionally encountered privilege escalation inscreen version 4.05.00.
Quick Reference Tools
linux-exploit-suggester
Matches the running kernel against known exploits automatically, always run this before searching manually.
Linux Privilege Escalation
Misconfiguration-based techniques that don’t depend on a specific vulnerable version.

