GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel arm64: MOPS exception handler reads a source register for SET*, going out of bounds on XZR

CVSS 7.1CVE-2025-37846Kernel, userspace & hypervisorcurated

Impact

do_el0_mops() read the source register field from the ESR even for SET* instructions, which do not use one. When the MOPS exception is taken from a SET* sequence using XZR, that field is reported as register 31 and the handler indexes past the end of the pt_regs register array - the only architectural case where the field can be 31. The exposure is an out-of-bounds read of kernel memory adjacent to pt_regs, reachable by any local unprivileged process on an arm64 host that executes such a sequence; the record does not establish a path to code execution or to usable disclosure. Relevant to arm64 GPU nodes (Grace-class hosts) and only to kernels after commit 2de451a329cf, which removed the pt_regs_read_reg() bounds check that made the earlier code benign.

Who can reach it

Local, unprivileged. Any user able to run code on the arm64 host - including a tenant inside a container, since no capability or device access is needed - can execute a SET* sequence with XZR as the source and take an MOPS exception. Not reachable remotely and not reachable at all on x86 nodes.

What to do

Update to a stable kernel carrying the fix (the source register is no longer dereferenced for a set operation) and reboot the node; kernels predating commit 2de451a329cf are not affected, so check before scheduling the window. The references list the stable commits; no vendor advisory names a single fixed release.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.