CVE-2026-98546: arm64/boot: Disable trapping of PMZR_EL0 writes to EL2
In the Linux kernel, the following vulnerability has been resolved:
arm64/boot: Disable trapping of PMZREL0 writes to EL2
initel2fgt2() writes one mask to both HDFGRTR2EL2 and HDFGWTR2EL2. PMZREL0 is write-only, so its trap bit, nPMZREL0, exists only in HDFGWTR2EL2 and is therefore never set: a PMZREL0 write from the host traps to EL2, where the nVHE hypervisor has no handler and BUG()s. The kernel never writes PMZREL0, but kernel.perfuseraccess=1 has the PMU driver set PMUSERENREL0.UEN for a task with a user-read event, so a write from EL0 reaches the trap and takes the host down without a panic message.
Accumulate the HDFGWTR2EL2 bits separately, as initel2fgt() already does for HDFGWTREL2, and set nPMZREL0 with the other FEATPMUv3p9 bits.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Disable trapping of PMZR_EL0 writes to EL2 by setting nPMZR_EL0 in HDFGWTR2_EL2.
Linux kernel arm64 EL2 fine-grained traps HDFGWTR2_EL2.nPMZR_EL0 = set