---
id: CVE-2026-98546
title: 'arm64/boot: Disable trapping of PMZR_EL0 writes to EL2'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  arm64/boot: Disable trapping of PMZR_EL0 writes to EL2

  __init_el2_fgt2() writes one mask to both HDFGRTR2_EL2 and HDFGWTR2_EL2.
  PMZR_EL0 is write-only, so its trap bit…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 686d8f7b592f3466f44aea653c8147611b351c83 <
    bb8c90c86441c090e9036f019cf1b4d7894a2c40
  - >-
    Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 <
    071f51188a5d8ec10535541255587976d12fc7d8
  - >-
    Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 <
    ce71865bf43f88bed9d9218e9218e537150be506
  - >-
    Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 <
    2bc6b218717b9d08f466f88209251d54bc09b207
  - Linux 882f78400322c0aec4b641a7168adad9a66bc0c2
  - Linux >= 6.12.25 < 6.12.112
  - Linux >= 6.14.4 < 6.15
  - Linux 6.15
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:18:14.808Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98546'
references:
  - url: 'https://git.kernel.org/stable/c/bb8c90c86441c090e9036f019cf1b4d7894a2c40'
  - url: 'https://git.kernel.org/stable/c/071f51188a5d8ec10535541255587976d12fc7d8'
  - url: 'https://git.kernel.org/stable/c/ce71865bf43f88bed9d9218e9218e537150be506'
  - url: 'https://git.kernel.org/stable/c/2bc6b218717b9d08f466f88209251d54bc09b207'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.266Z'
---

## Overview

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

arm64/boot: Disable trapping of PMZR_EL0 writes to EL2

__init_el2_fgt2() writes one mask to both HDFGRTR2_EL2 and HDFGWTR2_EL2.
PMZR_EL0 is write-only, so its trap bit, nPMZR_EL0, exists only in
HDFGWTR2_EL2 and is therefore never set: a PMZR_EL0 write from the host
traps to EL2, where the nVHE hypervisor has no handler and BUG()s. The
kernel never writes PMZR_EL0, but kernel.perf_user_access=1 has the PMU
driver set PMUSERENR_EL0.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 HDFGWTR2_EL2 bits separately, as __init_el2_fgt() already
does for HDFGWTR_EL2, and set nPMZR_EL0 with the other FEAT_PMUv3p9
bits.

## Affected

- `Linux >= 686d8f7b592f3466f44aea653c8147611b351c83 < bb8c90c86441c090e9036f019cf1b4d7894a2c40`
- `Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 < 071f51188a5d8ec10535541255587976d12fc7d8`
- `Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 < ce71865bf43f88bed9d9218e9218e537150be506`
- `Linux >= 858c7bfcb35e1100b58bb63c9f562d86e09418d9 < 2bc6b218717b9d08f466f88209251d54bc09b207`
- `Linux 882f78400322c0aec4b641a7168adad9a66bc0c2`
- `Linux >= 6.12.25 < 6.12.112`
- `Linux >= 6.14.4 < 6.15`
- `Linux 6.15`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
