---
id: CVE-2026-72288
title: >-
  KVM: arm64: vgic: Handle race between interrupt affinity change and LPI
  disabling
summary: >-
  In the Linux kernel, the following vulnerability has been resolved:


  KVM: arm64: vgic: Handle race between interrupt affinity change and LPI
  disabling


  Hyunwoo Kim reports some really bad races should the following

  situation occur:


  - LP…
severity: critical
cvss: 9.3
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 <
    d19dca8194ebed371e624331c6be2cb73b562caf
  - >-
    Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 <
    b1a89d12d35a8256d2b170ced0b1c86851f3def2
  - >-
    Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 <
    7258770e5814f15e8308ebda82ac9acf6964ba8e
  - Linux 4.8
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T18:45:49.610829Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T18:55:14.997Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-72288'
references:
  - url: 'https://git.kernel.org/stable/c/d19dca8194ebed371e624331c6be2cb73b562caf'
  - url: 'https://git.kernel.org/stable/c/b1a89d12d35a8256d2b170ced0b1c86851f3def2'
  - url: 'https://git.kernel.org/stable/c/7258770e5814f15e8308ebda82ac9acf6964ba8e'
tags:
  - cve.org
epss: 0.00183
epssPercentile: 0.07358
ingestedAt: '2026-10-16T19:46:24.413Z'
---

## Overview

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

KVM: arm64: vgic: Handle race between interrupt affinity change and LPI disabling

Hyunwoo Kim reports some really bad races should the following
situation occur:

- LPI-I is pending in vcpu-B's AP list
- vcpu-A writes to vcpu-B's RD to disable its LPIs
- vcpu-C moves I from B to C

If the last two race nicely enough, vgic_prune_ap_list() can drop
the irq and AP list locks, reacquire them, and in the interval
the irq has been freed. UAF follows.

The fix is two-fold:

- Before dropping the irq and ap_list locks, take a reference on
  the irq

- Do not try to handle migration of the pending bit: there is no
  expectation that this state is retained, as per the architecture

With that, we're sure that the interrupt is still around, and we
safely remove it from the AP list as it has no target at this
stage (unless another interrupt fires, but that's another story).

## Affected

- `Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 < d19dca8194ebed371e624331c6be2cb73b562caf`
- `Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 < b1a89d12d35a8256d2b170ced0b1c86851f3def2`
- `Linux >= 5dd4b924e390af426e424d5e52c1b4d1566af817 < 7258770e5814f15e8308ebda82ac9acf6964ba8e`
- `Linux 4.8`

## Remediation

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