Description
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.

[shorne@gmail.com: fix comment style]
Published: 2026-09-11
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Kernel Privilege Escalation via Read/Write Primitive
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel contains a system call sys_or1k_atomic that performs a word swap between two memory addresses supplied by the caller. The implementation performs four raw memory accesses—two reads and two writes—without validating the supplied pointers. Consequently, an unprivileged user on OpenRISC platforms can provide a kernel address as either pointer and cause the kernel to read from or write to that address. This arbitrary kernel memory read/write capability enables an attacker to overwrite critical kernel structures such as the sys_call_table, effectively granting arbitrary kernel‑level code execution. The flaw is a classic example of unchecked user‑supplied pointers, categorized as CWE‑822.

Affected Systems

The affected product is the Linux kernel running on OpenRISC architecture. Any release of the Linux kernel that compiles with the or1k ABI and does not include the patch is vulnerable. No specific version numbers are listed, so any release of the Linux kernel that exposes this syscall on OpenRISC is considered vulnerable.

Risk and Exploitability

With a CVSS score of 7.0 this vulnerability has a high impact. The EPSS score is less than 1%, indicating a very low but non‑zero likelihood of exploitation. The vulnerability is not listed in CISA’s KEV catalog. It provides an unprivileged local user with a kernel read/write primitive that can be used to overwrite critical kernel data structures such as the sys_call_table, leading to kernel‑level code execution. Based on the description, the exploit requires a local unprivileged user to invoke the syscall with a kernel address, which is unlikely without administrative access.

Generated by OpenCVE AI on September 13, 2026 at 04:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the official kernel patch that adds checks to sys_or1k_atomic.
  • If a patch cannot be applied immediately, reconfigure or rebuild the kernel to remove or disable the or1k_atomic syscall or build the kernel without OpenRISC ABI support, thereby reducing the attack surface.
  • Enable stricter kernel memory protection such as CONFIG_STRICT_KERNEL_RWX, CONFIG_STRICT_KERNEL_CPUMASK, and enforce SELinux or other MAC policies to limit user process influence on kernel memory.

Generated by OpenCVE AI on September 13, 2026 at 04:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 06:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-822
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Important


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description 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. [shorne@gmail.com: fix comment style]
Title openrisc: fix arbitrary kernel memory access via or1k_atomic syscall
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-13T06:29:58.962Z

Reserved: 2026-09-11T19:38:34.713Z

Link: CVE-2026-89489

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:30.683

Modified: 2026-09-13T07:17:12.290

Link: CVE-2026-89489

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-11T19:43:42Z

Links: CVE-2026-89489 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T04:30:08Z

Weaknesses
  • CWE-822

    Untrusted Pointer Dereference