CVE Catalog

CVE-2026-89489

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.14%

3th percentile - higher than 3% of all known CVEs

Summary

In the Linux kernel on the OpenRISC architecture, the sys_or1k_atomic syscall (number 244) did not check user pointers with access_ok() before performing an atomic swap in hand-written assembly. This allowed an unprivileged process to pass a kernel address and directly read from or write to kernel memory.

Risk Assessment

A local attacker can gain a kernel read/write primitive, overwrite kernel data such as sys_call_table, and achieve code execution in kernel context, leading to full system compromise.

Recommendation

Update the Linux kernel to a version containing the fix that adds access_ok() checks for both pointers and exception table entries for the four memory accesses in sys_or1k_atomic.

Related vulnerabilities

Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: openrisc: fix arbitrary kernel memory access via or1k_atomic syscall sys_or1k_atomic() (syscall 244 in the "or1k" ABI) takes two user pointers, v1 and v2, and swaps the words they point to in hand-written assembly. l.lwz r29,0(r4) l.lwz r27,0(r5) l.sw 0(r4),r27 l.sw 0(r5),r29 The pointers are not checked with access_ok(). The four memory accesses also have no exception table entries. A caller passes a kernel address as either pointer, and the syscall reads from and writes to it directly. This gives an unprivileged process a kernel read/write primitive. It overwrites kernel data such as the sys_call_table, gaining code execution in kernel context. Check both pointers before entering the critical section. Add fixups for the four memory accesses so faults on valid but unmapped user addresses return -EFAULT. [[email protected]: fix comment style]

Vulnerability data from NVD (NIST) · CISA KEV · EPSS