PatchSiren cyber security CVE debrief
CVE-2026-46242 Linux CVE debrief
A use-after-free (UAF) vulnerability in the Linux kernel's eventpoll (epoll) subsystem allows concurrent operations to trigger memory corruption. The flaw exists in ep_remove() where a struct file pointer is used after its reference count may have dropped to zero, enabling writes to freed kmalloc-192 memory and potential attacker-controllable kmem_cache_free() against incorrect slab caches. The vulnerability specifically affects nested epoll configurations where an epoll watch monitors another epoll instance. A fix pins the struct file reference for the duration of the critical section, preventing the race with __fput() and subsequent premature freeing of the watched struct eventpoll.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- HIGH 7.8
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-30
- Original CVE updated
- 2026-07-22
- Advisory published
- 2026-05-30
- Advisory updated
- 2026-07-22
Who should care
Linux kernel maintainers, cloud providers running multi-tenant workloads, container platform operators, and organizations with systems using nested epoll patterns or exposing epoll-based services to untrusted code.
Technical summary
The vulnerability is a race condition in the Linux kernel's eventpoll subsystem, specifically in ep_remove() and ep_remove_file(). The function clears file->f_ep under file->f_lock but continues using the @file pointer within the critical section. A concurrent __fput() taking the eventpoll_release() fastpath can observe a transient NULL in file->f_ep, skip eventpoll_release_file(), and proceed to f_op->release and file_free(). For nested epoll (epoll watching epoll), this triggers ep_eventpoll_release() -> ep_clear_and_put() -> ep_free(), which kfree()s the struct eventpoll. The embedded ->refs hlist_head is then targeted by a subsequent hlist_del_rcu() operation, causing a write to freed kmalloc-192 memory. Additionally, because struct file is SLAB_TYPESAFE_BY_RCU, the backing memory can be recycled by alloc_empty_file() while ep_remove() still holds the lock, leading to potential kmem_cache_free() against the wrong slab cache. The fix adds epi_fget() to pin the struct file reference at the start of ep_remove(), ensuring __fput() cannot complete and the struct eventpoll remains alive through the critical section. If pinning fails, the file has already reached refcount zero and the slow path through eventpoll_release_file() handles cleanup safely.
Defensive priority
high
Recommended defensive actions
- Apply the referenced stable kernel commits as soon as available for your distribution.
- Prioritize patching systems that use nested epoll configurations or untrusted workloads with epoll.
- Monitor for stable kernel updates from your Linux distribution containing the fix commits.
- Consider enabling kernel livepatching if available to apply fixes without reboot on critical systems.
- Review application architectures that rely on epoll-watches-epoll patterns for potential exposure.
Evidence notes
The vulnerability description was published 2026-05-30 and modified 2026-06-01. The fix involves adding epi_fget() at the top of ep_remove() to pin the struct file reference, gating the critical section on successful pinning. This prevents __fput() from proceeding while the file is in use, which transitively keeps the watched struct eventpoll alive across hlist_del_rcu() and f_lock operations. Three stable kernel commits are referenced as fixes.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-46242 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-46242
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-46242 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-46242
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/a6dc643c69311677c574a0f17a3f4d66a5f3744b
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/ced39b6a8062bac5c18a1c3df85634107eb8664a
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/ef4ca02e95363e78977ca04340d44fe3b4b2b81f
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.