CVE-2026-89489

openrisc: fix arbitrary kernel memory access via or1k_atomic syscall

State
Published
Severity
7.8 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

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]

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before bf310718c6fa6adeee06d207a55489546d860e2cAffected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before 497cba0b02e5555d99fe9ee1dc478af743ab7f7aAffected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before 1f2e92e499d863f81df1732af59b4a3559969193Affected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before 574ae2ac2b314aa33498cd2c28add106cbe644f2Affected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before a520e8cac54fb403f3800125b606f55fcad42cb9Affected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before d64a75369cd0f2ee79afcc9d9ca34a3890989379Affected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before b53435c079c78f89f70a62dd5a322cca4e292b34Affected
  • 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a to before 78004e9a87f240df03e2f73120d291763c32e0a7Affected
LinuxLinux
  • 3.1Affected
  • before 3.1Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.