Bad Epoll is a local privilege escalation vulnerability in the Linux kernel eventpoll subsystem, affecting kernels derived from the vulnerable code introduced in Linux 6.4. The flaw is a race-condition use-after-free in ep_remove(), reached via ep_remove_file(), where file->f_ep is cleared under file->f_lock and the code then continues to use the associated struct file inside the same critical section. A concurrent __fput() can observe the transient NULL state, skip eventpoll_release_file(), and proceed into release and free paths while ep_remove() is still operating on the object. In epoll-watches-epoll scenarios this can free the watched struct eventpoll before hlist_del_rcu() updates its linkage, causing a write into freed memory. Because struct file is SLAB_TYPESAFE_BY_RCU, the same race can also lead to reuse of the file slot while ep_remove() still assumes the original object is valid, creating a second use-after-free condition involving struct file. Public analysis describes exploitation as turning the resulting constrained memory corruption into control over a dangling file object, kernel memory disclosure, and ultimately kernel control-flow hijack.
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
What an attacker gets, and what they’ve been doing with it.
If you can’t patch tonight, do this now.
Patch, then assume compromise.
2 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (3 hidden).
Repository is a small standalone Linux kernel local privilege escalation PoC for CVE-2026-46242 ('Bad Epoll'). The main artifact is exploit.c, a large C program implementing a multi-phase exploit chain against a race-condition use-after-free in the Linux epoll subsystem. The code is not part of a common exploit framework. README.md briefly states this is a 'full poc and lpe' and lists affected kernel ranges. analysis.md is a long technical write-up describing the vulnerability, root cause in fs/eventpoll.c, affected versions, exploitation strategy, and defensive context. Two GitHub Actions workflows automate compilation and QEMU-based verification against Ubuntu mainline kernel 6.4, including one variant that disables KASLR with the nokaslr boot parameter and relaxes kptr_restrict/dmesg_restrict to make testing easier. The exploit itself is clearly intended as a local privilege escalation tool rather than a remote exploit. It uses epoll, timerfd, eventfd, pipes, atomics, threading, CPU affinity, and timing primitives to repeatedly trigger a close-vs-close race in linked epoll objects. The visible structure shows phases for setup, linked epoll pair creation, heap spraying, slab hole creation, repeated race attempts, cross-cache reclamation, an infoleak verification step, and finally ROP-based privilege escalation. The code comments and visible symbols indicate it resolves or accepts a kernel base address, derives absolute addresses for commit_creds, init_cred, a KPTI trampoline, and a pop rdi gadget, then builds and triggers a kernel ROP chain to call commit_creds(init_cred) and return to user mode where a root shell is spawned. Capabilities: unprivileged local execution, repeated race triggering, heap shaping, optional KASLR bypass/address discovery, kernel infoleak checking, kernel ROP construction, privilege escalation to root, and root shell spawning. The exploit appears to be a research PoC rather than a fully weaponized tool: it contains extensive commentary, explicit failure messages, and even notes that some corruption stages may not be fully implemented ('f_op corruption not implemented in this PoC'). That makes POC the best maturity classification despite the presence of a root-shell payload path. Fingerprintable endpoints are mostly local file paths and CI download URLs. In the exploit code, notable paths include /proc/kallsyms for kernel symbol leakage, /proc/self/fdinfo for leak verification, and /bin/sh for post-exploitation shell execution. In the workflows, the repository downloads exploit.c from raw.githubusercontent.com and a kernel package from kernel.ubuntu.com, then mounts /proc, /sys, and /dev inside an initramfs and executes /bin/exploit. Overall, the repository's purpose is to demonstrate and validate exploitation of a Linux kernel epoll UAF leading to local root on vulnerable kernels, with supporting documentation and reproducible QEMU test harnesses.
Repository contains a single C proof-of-concept exploit and a README. The main file, CVE-2026-46242.c, is a self-contained local Linux kernel exploit targeting CVE-2026-46242, a use-after-free race in the eventpoll/epoll subsystem. The exploit creates multiple interconnected epoll instances, starts a racing thread that repeatedly closes and recreates selected epoll file descriptors, and concurrently performs repeated close/recreate operations on target descriptors to trigger a UAF condition. It also performs light file-descriptor spraying using /dev/null and dup() to improve allocator reuse and detect or leverage corruption. The intended post-exploitation outcome is local privilege escalation; if the process becomes UID 0, it executes /bin/sh. There are no network indicators or remote endpoints because this is a purely local exploit. The README describes affected kernel ranges, impact, and mitigation, but it inaccurately claims the repository does not contain exploit code; the C file is clearly exploit code. Overall, this is an operational local privilege-escalation PoC with a basic hardcoded payload rather than a detection-only script.
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
124 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A Linux kernel eventpoll privilege escalation vulnerability discussed in the context of increasing kernel exploitation research and AI-assisted exploit development.
Локальная уязвимость повышения привилегий в ядре Linux в подсистеме epoll (use-after-free в fs/eventpoll.c), позволяющая непривилегированному локальному коду получить root; значима из-за высокой надёжности эксплуатации, наличия публичного эксплойта и затрагивания базовой, неотключаемой подсистемы ядра.
A Linux kernel eventpoll use-after-free vulnerability involving ep_remove and struct eventpoll / struct file handling.
A related Linux kernel privilege escalation vulnerability mentioned for comparison as another recent kernelCTF-proven bug affecting old kernel machinery.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.