CVE-2023-53326

powerpc: Don't try to copy PPR for task with NULL pt_regs

Medium · published September 16, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
3.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

powerpc: Don't try to copy PPR for task with NULL pt_regs

powerpc sets up PF_KTHREAD and PF_IO_WORKER with a NULL pt_regs, which

from my (arguably very short) checking is not commonly done for other

archs. This is fine, except when PF_IO_WORKER's have been created and

the task does something that causes a coredump to be generated. Then we

get this crash:

Kernel attempted to read user page (160) - exploit attempt? (uid: 1000)

BUG: Kernel NULL pointer dereference on read at 0x00000160

Faulting instruction address: 0xc0000000000c3a60

Oops: Kernel access of bad area, sig: 11 [#1]

LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=32 NUMA pSeries

Modules linked in: bochs drm_vram_helper drm_kms_helper xts binfmt_misc ecb ctr syscopyarea sysfillrect cbc sysimgblt drm_ttm_helper aes_generic ttm sg libaes evdev joydev virtio_balloon vmx_crypto gf128mul drm dm_mod fuse loop configfs drm_panel_orientation_quirks ip_tables x_tables autofs4 hid_generic usbhid hid xhci_pci xhci_hcd usbcore usb_common sd_mod

CPU: 1 PID: 1982 Comm: ppc-crash Not tainted 6.3.0-rc2+ #88

Hardware name: IBM pSeries (emulated by qemu) POWER9 (raw) 0x4e1202 0xf000005 of:SLOF,HEAD hv:linux,kvm pSeries

NIP: c0000000000c3a60 LR: c000000000039944 CTR: c0000000000398e0

REGS: c0000000041833b0 TRAP: 0300 Not tainted (6.3.0-rc2+)

MSR: 800000000280b033 <SF,VEC,VSX,EE,FP,ME,IR,DR,RI,LE> CR: 88082828 XER: 200400f8

...

NIP memcpy_power7+0x200/0x7d0

LR ppr_get+0x64/0xb0

Call Trace:

ppr_get+0x40/0xb0 (unreliable)

__regset_get+0x180/0x1f0

regset_get_alloc+0x64/0x90

elf_core_dump+0xb98/0x1b60

do_coredump+0x1c34/0x24a0

get_signal+0x71c/0x1410

do_notify_resume+0x140/0x6f0

interrupt_exit_user_prepare_main+0x29c/0x320

interrupt_exit_user_prepare+0x6c/0xa0

interrupt_return_srr_user+0x8/0x138

Because ppr_get() is trying to copy from a PF_IO_WORKER with a NULL

pt_regs.

Check for a valid pt_regs in both ppc_get/ppr_set, and return an error

if not set. The actual error value doesn't seem to be important here, so

just pick -EINVAL.

[mpe: Trim oops in change log, add Fixes & Cc stable]

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00148 · 3.7th percentile
Published
2025-09-16T16:12Z
EPSS history
Timeline
  • 16 SEP 16:12Z
    powerpc: Don't try to copy PPR for task with NULL pt_regs
    cvelistv5