CVE-2026-99016
Description
A flaw was found in the Linux kernel's RISC-V architecture implementation. When the tagged address Application Binary Interface (ABI) is enabled, the kernel's fast user-space locking mechanism (futex) verifies an address after stripping its tag, but executes atomic memory operations using the original, tagged address. A local unprivileged attacker could exploit this flaw to perform unauthorized read and write operations on arbitrary kernel memory. This vulnerability can lead to local privilege escalation or complete system compromise.
Statement
Red Hat has assessed this issue as having an Important security impact because a local unprivileged user could obtain arbitrary kernel read and write primitives, leading to complete privilege escalation. However, this flaw is restricted to the RISC-V architecture when the tagged address ABI feature is configured. Supported Red Hat Enterprise Linux versions and enterprise product kernels do not incorporate this affected RISC-V implementation, and are therefore not vulnerable.
Mitigation
--- CME Mitigation Guidance (2026-11-02) ---
Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure.
The highest-value action is to ensure user pointers are untagged with untagged_addr() before passing them to inline atomic assembly instructions in RISC-V futex helpers: upgrade to Linux kernel 6.18.57, 7.2.11, 7.3, which untag the user pointer with untagged_addr() in arch_futex_atomic_op_inuser() and futex_atomic_cmpxchg_inatomic() before executing inline atomic instructions, closing all 2 injection vectors (crafted tagged pointer in FUTEX_WAKE_OP system call, crafted tagged pointer in futex atomic compare-and-exchange operation). Until patched, this is only a concern on Linux running on RISC-V architecture with Sv57 paging and CONFIG_RISCV_ISA_SUPM — Non-RISC-V architectures and deployments without tagged address ABI enabled are unaffected — so Restrict unprivileged user execution and prevent untrusted processes from enabling tagged address ABI via prctl PR_SET_TAGGED_ADDR_CTRL on affected RISC-V systems. As a compensating measure, Enable SELinux in enforcing mode to bound process actions even if kernel privilege escalation is attempted, Map local users to confined SELinux domains to restrict unauthorized operations if privilege escalation succeeds, and Enable runtime memory error detection such as KASAN or HWASan to detect unauthorized and out-of-bounds kernel memory accesses. These controls limit blast radius and contain exploitation, but they do not fix the underlying improper pointer untagging defect — apply the upstream patch to fully remediate.
Highest-impact CME: CME-301 SELinux (Enforcing Mode) (medium)
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 7.8 | N/A | 7.8 |
| Attack Vector | Local | N/A | Local |
| Attack Complexity | Low | N/A | Low |
| Privileges Required | Low | N/A | Low |
| User Interaction | None | N/A | None |
| Scope | Unchanged | N/A | Unchanged |
| Confidentiality | High | N/A | High |
| Integrity Impact | High | N/A | High |
| Availability Impact | High | N/A | High |
Vector
Red Hat: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
cve.org: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Understanding the Weakness (CWE)
Confidentiality
Technical Impact: Read Memory
If the dereferencing operation is for a read, then the attack might allow reading of sensitive data, cause a crash, or set a variable to an unexpected value (since the value will be read from an unexpected memory location).
Availability
Technical Impact: DoS: Crash, Exit, or Restart
If the untrusted pointer references a memory location that is not accessible to the product, or points to a location that is "malformed" or larger than expected by a read or write operation, the application may terminate unexpectedly.
Integrity,Confidentiality,Availability
Technical Impact: Execute Unauthorized Code or Commands; Modify Memory
If the pointer is dereferenced for a write operation, the attack might allow modification of critical state variables, cause a crash, or execute code. If the untrusted pointer is used in a function call, then the attacker might be able to call arbitrary functions.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.