CVE-2026-46242

HIGHPre-NVD 7.87.8
EchelonGraph scoreMEDIUM confidence

Score 7.8 from GitHub Security Advisory (severity: HIGH) published 2026-05-30. a secondary CVSS source baseline 7.8; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: epss, ghsa, secondary
Trending — 3 sources updated this weekElevated
7.8
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.8Exploit: NoneExposed: 0

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

eventpoll: fix ep_remove struct eventpoll / struct file UAF

ep_remove() (via ep_remove_file()) cleared file->f_ep under file->f_lock but then kept using @file inside the critical section (is_file_epoll(), hlist_del_rcu() through the head, spin_unlock). A concurrent __fput() taking the eventpoll_release() fastpath in that window observed the transient NULL, skipped eventpoll_release_file() and ran to f_op->release / file_free().

For the epoll-watches-epoll case, f_op->release is ep_eventpoll_release() -> ep_clear_and_put() -> ep_free(), which kfree()s the watched struct eventpoll. Its embedded ->refs hlist_head is exactly where epi->fllink.pprev points, so the subsequent hlist_del_rcu()'s "*pprev = next" scribbles into freed kmalloc-192 memory.

In addition, struct file is SLAB_TYPESAFE_BY_RCU, so the slot backing @file could be recycled by alloc_empty_file() -- reinitializing f_lock and f_ep -- while ep_remove() is still nominally inside that lock. The upshot is an attacker-controllable kmem_cache_free() against the wrong slab cache.

Pin @file via epi_fget() at the top of ep_remove() and gate the critical section on the pin succeeding. With the pin held @file cannot reach refcount zero, which holds __fput() off and transitively keeps the watched struct eventpoll alive across the hlist_del_rcu() and the f_lock use, closing both UAFs.

If the pin fails @file has already reached refcount zero and its __fput() is in flight. Because we bailed before clearing f_ep, that path takes the eventpoll_release() slow path into eventpoll_release_file() and blocks on ep->mtx until the waiter side's ep_clear_and_put() drops it. The bailed epi's share of ep->refcount stays intact, so the trailing ep_refcount_dec_and_test() in ep_clear_and_put() cannot free the eventpoll out from under eventpoll_release_file(); the orphaned epi is then cleaned up there.

A successful pin also proves we are not racing eventpoll_release_file() on this epi, so drop the now-redundant re-check of epi->dying under f_lock. The cheap lockless READ_ONCE(epi->dying) fast-path bailout stays.

CVSS v3
7.8
EG Score
7.8(medium)
EPSS
2.6%
KEV
Not listed

Published

May 30, 2026

Last Modified

July 22, 2026

Advisory Details (3)

Auto-updated Jun 5, 2026
No patch confirmed yet.
generic

eventpoll: fix ep_remove struct eventpoll / struct file UAF - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ef4ca02e95363e78977ca04340d44fe3b4b2b81f
generic

eventpoll: fix ep_remove struct eventpoll / struct file UAF - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/ced39b6a8062bac5c18a1c3df85634107eb8664a
generic

eventpoll: fix ep_remove struct eventpoll / struct file UAF - kernel/git/stable/linux.git - Linux kernel stable tree

https://git.kernel.org/stable/c/a6dc643c69311677c574a0f17a3f4d66a5f3744b

Patch Availability(6)

Vendor / EcosystemFixed in / PatchReleasedSource
redhatkernel-0:6.12.0-55.88.1.el10_02026-07-14redhat
redhatkernel-0:5.14.0-570.127.1.el9_62026-07-13redhat
redhatkernel-0:5.14.0-427.137.1.el9_42026-07-10redhat
redhatkernel-0:5.14.0-687.23.1.el9_82026-07-08redhat
redhatkernel-0:6.12.0-211.31.1.el10_22026-07-08redhat
redhatkernel-0:6.12.0-231.15.el10nv2026-07-07redhat

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Weakness Classification(1)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 8× in last 7d / 52× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 117 total refreshes for this CVE.

  1. 2026-07-22 14:08 UTCEPSS rescore
  2. 2026-07-21 15:24 UTCEPSS rescore
  3. 2026-07-20 17:08 UTCEPSS rescore
  4. 2026-07-19 14:31 UTCEPSS rescore
  5. 2026-07-18 10:04 UTCEPSS rescore
  6. 2026-07-16 17:03 UTCEPSS rescore
  7. 2026-07-16 01:45 UTCVendor advisory
  8. 2026-07-16 01:45 UTCGHSA enrichment
  9. 2026-07-15 16:57 UTCEPSS rescore
  10. 2026-07-15 02:00 UTCEPSS rescore
  11. 2026-07-14 13:42 UTCVendor advisory
  12. 2026-07-14 13:42 UTCGHSA enrichment
  13. 2026-07-13 22:30 UTCEPSS rescore
  14. 2026-07-13 06:13 UTCEPSS rescore
  15. 2026-07-12 05:46 UTCEPSS rescore
  16. 2026-07-11 16:40 UTCVendor advisory
  17. 2026-07-11 16:40 UTCGHSA enrichment
  18. 2026-07-11 08:27 UTCEPSS rescore
  19. 2026-07-09 19:10 UTCEPSS rescore
  20. 2026-07-08 17:13 UTCVendor advisory
  21. 2026-07-08 17:13 UTCGHSA enrichment
  22. 2026-07-08 15:16 UTCEPSS rescore
  23. 2026-07-07 13:46 UTCEPSS rescore
  24. 2026-07-06 16:27 UTCEPSS rescore
  25. 2026-07-06 02:23 UTCEPSS rescore
Show 75 more
  1. 2026-07-04 06:31 UTCEPSS rescore
  2. 2026-07-02 18:55 UTCGHSA enrichment
  3. 2026-07-02 03:36 UTCGHSA enrichment
  4. 2026-07-01 13:54 UTCGHSA enrichment
  5. 2026-07-01 01:16 UTCGHSA enrichment
  6. 2026-06-30 23:22 UTCEPSS rescore
  7. 2026-06-30 00:57 UTCGHSA enrichment
  8. 2026-06-29 14:06 UTCEPSS rescore
  9. 2026-06-29 14:06 UTCEPSS rescore
  10. 2026-06-29 12:19 UTCGHSA enrichment
  11. 2026-06-28 19:17 UTCGHSA enrichment
  12. 2026-06-28 14:07 UTCEPSS rescore
  13. 2026-06-28 06:38 UTCGHSA enrichment
  14. 2026-06-28 04:56 UTCEPSS rescore
  15. 2026-06-28 04:56 UTCEPSS rescore
  16. 2026-06-27 18:00 UTCGHSA enrichment
  17. 2026-06-27 05:21 UTCGHSA enrichment
  18. 2026-06-27 03:08 UTCEPSS rescore
  19. 2026-06-26 16:07 UTCGHSA enrichment
  20. 2026-06-25 18:55 UTCGHSA enrichment
  21. 2026-06-25 13:49 UTCEPSS rescore
  22. 2026-06-25 06:16 UTCGHSA enrichment
  23. 2026-06-24 15:17 UTCGHSA enrichment
  24. 2026-06-24 14:05 UTCEPSS rescore
  25. 2026-06-24 02:38 UTCGHSA enrichment
  26. 2026-06-23 21:33 UTCEPSS rescore
  27. 2026-06-23 21:33 UTCEPSS rescore
  28. 2026-06-22 14:25 UTCEPSS rescore
  29. 2026-06-22 14:25 UTCEPSS rescore
  30. 2026-06-21 14:56 UTCEPSS rescore
  31. 2026-06-21 14:56 UTCEPSS rescore
  32. 2026-06-21 01:59 UTCEPSS rescore
  33. 2026-06-21 01:59 UTCEPSS rescore
  34. 2026-06-19 19:26 UTCEPSS rescore
  35. 2026-06-19 19:26 UTCEPSS rescore
  36. 2026-06-18 22:51 UTCGHSA enrichment
  37. 2026-06-18 17:52 UTCEPSS rescore
  38. 2026-06-18 17:52 UTCEPSS rescore
  39. 2026-06-18 10:13 UTCGHSA enrichment
  40. 2026-06-17 17:53 UTCEPSS rescore
  41. 2026-06-17 17:39 UTCGHSA enrichment
  42. 2026-06-17 04:44 UTCGHSA enrichment
  43. 2026-06-16 17:52 UTCEPSS rescore
  44. 2026-06-16 16:01 UTCGHSA enrichment
  45. 2026-06-16 03:21 UTCGHSA enrichment
  46. 2026-06-15 17:49 UTCEPSS rescore
  47. 2026-06-15 14:43 UTCGHSA enrichment
  48. 2026-06-15 02:04 UTCGHSA enrichment
  49. 2026-06-14 13:26 UTCGHSA enrichment
  50. 2026-06-14 00:48 UTCGHSA enrichment
  51. 2026-06-13 23:00 UTCEPSS rescore
  52. 2026-06-13 12:09 UTCGHSA enrichment
  53. 2026-06-12 23:27 UTCGHSA enrichment
  54. 2026-06-12 23:12 UTCEPSS rescore
  55. 2026-06-12 23:12 UTCEPSS rescore
  56. 2026-06-12 10:48 UTCGHSA enrichment
  57. 2026-06-11 22:10 UTCGHSA enrichment
  58. 2026-06-11 14:00 UTCEPSS rescore
  59. 2026-06-11 09:32 UTCGHSA enrichment
  60. 2026-06-10 22:18 UTCEPSS rescore
  61. 2026-06-10 20:54 UTCGHSA enrichment
  62. 2026-06-10 13:22 UTCEPSS rescore
  63. 2026-06-10 13:22 UTCEPSS rescore
  64. 2026-06-10 08:16 UTCGHSA enrichment
  65. 2026-06-09 19:38 UTCGHSA enrichment
  66. 2026-06-09 07:00 UTCGHSA enrichment
  67. 2026-06-08 18:21 UTCGHSA enrichment
  68. 2026-06-08 14:17 UTCEPSS rescore
  69. 2026-06-08 14:17 UTCEPSS rescore
  70. 2026-06-08 04:37 UTCGHSA enrichment
  71. 2026-06-07 15:59 UTCGHSA enrichment
  72. 2026-06-07 15:25 UTCEPSS rescore
  73. 2026-06-07 15:25 UTCEPSS rescore
  74. 2026-06-07 03:21 UTCGHSA enrichment
  75. 2026-06-06 14:43 UTCGHSA enrichment

Publicly available exploits

(2 references)

Working exploit code is in the public domain (2 GitHub PoCs). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.

  • GitHub PoCSaithFranklinB/ScannerBadEpoll
    First seen Jul 8, 2026

    Verificador de Vulnerabilidad: Bad Epoll (CVE-2026-46242)

    Open source ↗
  • GitHub PoC0xBlackash/CVE-2026-46242
    First seen Jul 4, 2026

    CVE-2026-46242

    Open source ↗

Frequently asked(5)

What is CVE-2026-46242?
CVE-2026-46242 is a high vulnerability published on May 30, 2026. In the Linux kernel, the following vulnerability has been resolved: eventpoll: fix ep_remove struct eventpoll / struct file UAF epremove() (via epremovefile()) cleared file->fep under file->f_lock but then kept using @file inside the critical section (isfileepoll(), hlistdelrcu() through the head,…
When was CVE-2026-46242 disclosed?
CVE-2026-46242 was first published in the National Vulnerability Database on May 30, 2026, with the most recent update on July 22, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-46242 actively exploited?
CVE-2026-46242 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 2.6% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-46242?
CVE-2026-46242 has a CVSS v3 base score of 7.8 (NVD).
How do I remediate CVE-2026-46242?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-46242, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2026-46242

Explore →

Is Your Infrastructure Affected by CVE-2026-46242?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.