futex: Drop CLONE_THREAD requirement for private default hash alloc
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.18.33, 7.0.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: futex: Drop CLONE_THREAD requirement for private default hash alloc Currently need_futex_hash_allocate_default() depends on strict pthread semantics, abusing CLONE_THREAD. This breaks the non-concurrency assumptions when doing the mm->futex_ref pcpu allocations, leading to bugs[0] when sharing the mm in other ways; ie: BUG: KASAN: slab-use-after-free in futex_hash_put ... where the +1 bias can end up on a percpu counter that mm->futex_ref no longer points at. Loosen the check to cover any CLONE_VM clone, except vfork(). Excluding vfork keeps the existing paths untouched (no overhead), and we can't race in the first place: either the parent is suspended and the child runs alone, or mm->futex_ref is already allocated from an earlier CLONE_VM.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From d9b05321e21e4b218de4ce8a590bf375f58b6346 · fixed in 1dcd36420af2da5bd59306dba9caf78e3d248b1d; From d9b05321e21e4b218de4ce8a590bf375f58b6346 · fixed in 974ac49a9a068b0591a59f65c63eb06579a13091; From d9b05321e21e4b218de4ce8a590bf375f58b6346 · fixed in ee9dce44362b2d8132c32964656ab6dff7dfbc6a
- Linux Linux
6.17
- KernelLinux
From 6.17.0 · fixed in 6.18.33; From 6.19.0 · fixed in 7.0.10