CVE-2026-80775: futex: Fix race on the initial mm->futex.phash.ref allocation
Noroxi assessment
Priority: Monitor (action score 0/100)
- Public proof-of-concept code exists (GitHub); there is no record of exploitation in the wild.
- Probability of exploitation in the next 30 days: 0.18% (FIRST EPSS).
- Fixed version: Linux Linux 86d12b34bafc9a4c271a9edefea88855a934d6e5, bde0238083647381d4747355c5a19115a3422b96, c4b4972d8edcdf50b6518f55119e129d2f668a10.
Low priority for now. Upgrade to Linux Linux 86d12b34bafc9a4c271a9edefea88855a934d6e5, bde0238083647381d4747355c5a19115a3422b96, c4b4972d8edcdf50b6518f55119e129d2f668a10 or later.
Generated automatically from the record's data: CVSS (NVD and CNA), CISA KEV and SSVC, FIRST EPSS, exploit sources, fixed versions. How we calculate it
Primary sources: NVD · CVE.org · FIRST EPSS
In the Linux kernel, the following vulnerability has been resolved: futex: Fix race on the initial mm->futex.phash.ref allocation futex_hash_allocate() allocates mm->futex.phash.ref without any locking. Commit d9b05321e21e ("futex: Move futex_hash_free() back to __mmput()") moved the allocation here and assumed that the process has just a single thread at this point. Commit ee9dce44362b ("futex: Drop CLONE_THREAD requirement for private default hash alloc") widened need_futex_hash_allocate_default() to cover any CLONE_VM clone, but left out vfork because the parent is suspended and cannot race. That no longer holds once vfork is nested. If a vfork child calls vfork again and is then killed with SIGKILL, the parent is released from its vfork wait and runs concurrently with the grandchild in the same mm. Neither of them went through futex_hash_allocate_default(). When both call prctl(PR_FUTEX_HASH, PR_FUTEX_HASH_SET_SLOTS) at the same time, each one sees mm->futex.phash.ref as NULL and stores its own percpu counter. Only the last store survives. The counter stored first is no longer reachable from the mm, so the references on it are not seen by __futex_ref_atomic_end(). A private hash that still has references is then considered dead and freed, and a task that still holds one of its buckets writes into freed memory in futex_q_lock(). Store the counter once with cmpxchg() and let the loser free_percpu() its own. The initial reference has to be taken before the store, otherwise another task can install a private hash while the counter is still 0.
- Published
- Sep 4, 2026
- Updated
- Oct 19, 2026
- EPSS
- 0.1% · 8th percentile
- CWE
- —
Report tools
Action score
0
Monitor
Low priority for now.
- CVSS
- 0 / 40 · —
- CISA KEV
- 0 / 30 · Not listed
- EPSS
- 0 / 30 · 0.1%
Get told when this record changes
- Not in KEV: no record of exploitation in the wild
- Proof of concept exists, no weaponized module
- A fix has been released
If any of these changes, we'll tell you in the daily email digest.
Running WordPress? Scan your site free with WP Lens
Noroxi analysis
What does it mean in your environment?
The assessment above is generated automatically from the record's data; it doesn't know your environment. Our team verifies on your systems whether this vulnerability is actually exploitable and which mitigation is enough.
We use this product, ask for helpAffected systems
Is your version affected?
Pick the product and type the version you run. It's compared with this record's version ranges in your browser; the version isn't sent anywhere.
—
Versions reported by the vendor
Affected version ranges reported by the assigning authority (Linux). Independent of NVD's CPE analysis and usually ahead of it.
Linux Linux
- 6.17affected
- d9b05321e21e4b218de4ce8a590bf375f58b6346 and later · before 86d12b34bafc9a4c271a9edefea88855a934d6e5affected · git
- d9b05321e21e4b218de4ce8a590bf375f58b6346 and later · before ff252ed45c8263525f2f54d81c5fa6d547fba344affected · git
- d9b05321e21e4b218de4ce8a590bf375f58b6346 and later · before c4b4972d8edcdf50b6518f55119e129d2f668a10affected · git
- d9b05321e21e4b218de4ce8a590bf375f58b6346 and later · before bde0238083647381d4747355c5a19115a3422b96affected · git
- before 6.17not affected · semver
- 6.18.47 and later · up to and including 6.18.*not affected · semver
- 7.1.11 and later · up to and including 7.1.*not affected · semver
- 7.2.1 and later · up to and including 7.2.*not affected · semver
- 7.3 and laternot affected · original_commit_for_fix
Package-level exposure
OSV and GitHub Advisory data: ecosystem, package and range. SBOM matching uses this table.
| Ecosystem | Package | Affected range | Fix |
|---|---|---|---|
| AlmaLinux:9 | kernel | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-devel | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-modules | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-devel | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-devel-matched | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-modules | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-modules-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-64k-modules-extra | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-abi-stablelists | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-cross-headers | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug-devel | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug-devel-matched | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug-modules | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
| AlmaLinux:9 | kernel-debug-modules-core | before 5.14.0-687.54.1.el9_8 | 5.14.0-687.54.1.el9_8 |
+96
Same product
linux: all recordsOther highest-scoring records for the same primary product.
- CVE-2026-74705udp: fix potential use-after-free in tunnel segmentation40Plan
- CVE-2026-74612veth: fix skb length accounting after XDP frag adjustment40Plan
- CVE-2026-74475vxlan: use neigh_ha_snapshot() in route_shortcircuit()40Plan
Published before and after this one in the same product
- ← EarlierCVE-2026-80773Sep 4, 2026 · HID: huawei: fix missing hid_is_usb() check0Monitor
- ← EarlierCVE-2026-80774Sep 4, 2026 · HID: asus: fix missing hid_is_usb() check0Monitor
- Later →CVE-2026-80777Sep 4, 2026 · futex/pi: Plug private futex exec() race0Monitor
Remediation
Which version to upgrade to
Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.
| Product / package | Fixed version | Source |
|---|---|---|
| Linux Linux | 86d12b34bafc9a4c271a9edefea88855a934d6e5 | Vendor (CNA) |
| Linux Linux | bde0238083647381d4747355c5a19115a3422b96 | Vendor (CNA) |
| Linux Linux | c4b4972d8edcdf50b6518f55119e129d2f668a10 | Vendor (CNA) |
| Linux Linux | ff252ed45c8263525f2f54d81c5fa6d547fba344 | Vendor (CNA) |
| almalinux:kernel | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-core | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-core | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-devel | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-devel-matched | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules-core | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-debug-modules-extra | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-devel | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| almalinux:kernel-64k-devel-matched | 5.14.0-687.54.1.el9_8 · AlmaLinux:9 | Package registry (OSV) |
| debian:linux | 7.1.12-1 · Debian:14 | Package registry (OSV) |
| opensuse:kernel-source | 7.2.5-1.1 · openSUSE:Tumbleweed | Package registry (OSV) |
| red hat:kernel-64k-debug-debuginfo | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debug-devel | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debug-devel-matched | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-debuginfo | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-devel | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-64k-devel-matched | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debug-debuginfo | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debug-devel | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debug-devel-matched | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debuginfo | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debuginfo-common-aarch64 | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
| red hat:kernel-debuginfo-common-ppc64le | 0:5.14.0-687.54.1.el9_8 · Red Hat:enterprise_linux:9::appstream | Package registry (OSV) |
+1
Exploit status
Proof of concept available
A public proof of concept or detection signature exists. Exploit knowledge is out there; don't delay patching.
Evidence
- Proof-of-concept repository on GitHub ×1
Noroxi does not host or link to exploit code. Metasploit module names and Nuclei template ids are shown (names, not code); Exploit-DB entries and PoC repositories are given as counts only.
| Source | Kind | Date |
|---|---|---|
| Proof-of-concept repository on GitHub | stars:3 | 2026-10-18 |
Research context
For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.
Timeline
From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.
- Published
- First PoC+43 d
- TodayNov 2, 2026+59 d
FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).
Patch and commit links
Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.
No commit or PR link among the references.
Credits
All researchersFinders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.
No credits in the CNA record.
Variant candidates
Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.
No nightly-computed relations.
Chain candidates
An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.
—
Bug bounty scope
No known public program.
Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).
Technical details
No CVSS vector for this record, so attack conditions can't be derived.
Weakness class (CWE)
—
Attack context
MITRE CAPEC attack patterns and ATT&CK techniques for this weakness class (CWE). A starting point for detection rules and threat hunting.
MITRE has no CAPEC/ATT&CK mapping for this CWE.
Change log
- Exploit maturitynone → poc
- Fix✗ → ✓
For records you follow, these changes also arrive as notifications. →
References
Show all references (3 more)Show less
Vendor advisories and official records. Exploit/PoC links are deliberately left out.