CVE-2026-99016
Last modified
CVE-2026-99016 is a high-severity vulnerability rated 7.8/10 on the CVSS scale. In the Linux kernel, the following vulnerability has been resolved: riscv: futex: untag the user pointer before the atomic access access_ok() checks untagged_addr(uaddr), but arch_futex_atomic_op_inuser() and futex_atomic_cmpxchg_inatomic() hand the raw uaddr to the inline asm amoswap/amoadd/.../lr.w+sc.w through the "+m" (*uaddr) operand. When the tagged address ABI is enabled (CONFIG_RISCV_ISA_SUPM, prctl PR_SET_TAGGED_ADDR_CTRL with PMLEN != 0), those two addresses differ: a user pointer whose top PMLEN bits hold a tag passes access_ok() after untagging, but the atomic is then performed on the still-tagged raw address. Supervisor-mode data accesses are not subject to the U-mode pointer masking (that is governed by menvcfg.PMM, which the kernel does not set), so hardware does not strip the tag for the kernel's own access.
Description
In the Linux kernel, the following vulnerability has been resolved: riscv: futex: untag the user pointer before the atomic access access_ok() checks untagged_addr(uaddr), but arch_futex_atomic_op_inuser() and futex_atomic_cmpxchg_inatomic() hand the raw uaddr to the inline asm amoswap/amoadd/.../lr.w+sc.w through the "+m" (*uaddr) operand. When the tagged address ABI is enabled (CONFIG_RISCV_ISA_SUPM, prctl PR_SET_TAGGED_ADDR_CTRL with PMLEN != 0), those two addresses differ: a user pointer whose top PMLEN bits hold a tag passes access_ok() after untagging, but the atomic is then performed on the still-tagged raw address. Supervisor-mode data accesses are not subject to the U-mode pointer masking (that is governed by menvcfg.PMM, which the kernel does not set), so hardware does not strip the tag for the kernel's own access. With Sv57 and PMLEN=16 the tag bits overlap the canonical-address bits, so a tagged pointer can name a canonical kernel virtual address (e.g. in the linear map) whose untagged form is a valid user address. An unprivileged process can thus make FUTEX_WAKE_OP perform an atomic read-modify-write on an arbitrary kernel address, with the matching FUTEX_OP_CMP_* result serving as a read oracle. get_user()/put_user()/raw_copy_{to,from}_user() already untag the pointer after the access_ok() check; do the same in the futex helpers so the atomic operates on the address that was actually validated.
Metrics
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | >= 2e1743085887ba3f553c2bb472a75a3ff744b242, < 2e5c80bbc062a8dda33e687ebf7be8f074ee4f7d; >= 2e1743085887ba3f553c2bb472a75a3ff744b242, < 8e48d8d51ab37b7decfbff3e2844e027a52ad6ea; >= 2e1743085887ba3f553c2bb472a75a3ff744b242, < 405290be962b32eec842776fbe3bdf81f15b1676 |
| Linux | Linux | 6.13 |
References
Timeline
- Published
- Last Modified
- Status
- Received
Frequently Asked Questions
What is CVE-2026-99016?
How severe is CVE-2026-99016?
How do I fix CVE-2026-99016?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-99010In the Linux kernel, the following vulnerability has been re…
- CVE-2026-99011In the Linux kernel, the following vulnerability has been re…7.1
- CVE-2026-99012In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2026-99013In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2026-99014In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2026-99015In the Linux kernel, the following vulnerability has been re…
- CVE-2026-99017In the Linux kernel, the following vulnerability has been re…7
- CVE-2026-99018In the Linux kernel, the following vulnerability has been re…7.8
- CVE-2026-99019In the Linux kernel, the following vulnerability has been re…
- CVE-2026-9902Use after free in Accessibility in Google Chrome prior to 14…8.3
- CVE-2026-99020In the Linux kernel, the following vulnerability has been re…
- CVE-2026-99021In the Linux kernel, the following vulnerability has been re…
Are you affected by CVE-2026-99016?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
