CVE-2026-89913

High

In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: vgic-v3: take an LPI reference in vgic_v3_save_pending_tables vgic_v3_save_pending_tables() iterates dist->lpi_xa using xa_for_each() and dereferences the returned struct vgic_irq in the loop body without holding a reference on the LPI. The xarray iterator only provides temporary RCU coverage while looking up the current entry. That is not sufficient for this loop body, which reads fields from struct vgic_irq and performs guest memory accesses before the iteration completes. A concurrent path can trigger this race: the irqfd cached injection path (vgic_its_inject_cached_translation) obtains a transient LPI reference via vgic_its_check_cache() without holding kvm->lock, vcpu->mutex, config_lock, or its_lock. If guest ITS DISCARD then drops the cache and ITE references under its_lock, the transient inject reference may become the final one. When vgic_put_irq() drops it, the LPI is erased from lpi_xa and freed via kfree_rcu(). Meanwhile, vgic_v3_save_pending_tables() may still hold a stale pointer obtained from the xarray iterator and dereference it after the RCU grace period completes. Fix this by re-fetching each iterated LPI via vgic_get_irq(), which takes a stable reference, and dropping it with vgic_put_irq() on all paths. This matches the pattern already used by other lpi_xa iterators in the vgic ITS code.

Package Linux Kernel
Published 2026-09-16
Last modified 2026-09-17
CVSS version 3.1
Patch available
Yes

CVSS 3.1 score

8.8

out of 10
High
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High
Vector string
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Affected versions

Linux kernel versions 4.12 and later are affected. Fixed in 6.18.51, 7.2.5, 7.3-rc1 and their respective stable series.

Affected from
≥ 4.12
Fixed in
✓ 6.18.51 6.18.x ✓ 7.2.5 7.2.x ✓ 7.3-rc1

Frequently asked questions

  • What is CVE-2026-89913?

    CVE-2026-89913 is a High severity Linux kernel vulnerability with a CVSS score of 8.8 out of 10 . It affects Linux kernel versions from 4.12 onward and has been patched in 6.18.51, 7.2.5 and 7.3-rc1. CVE-2026-89913 has not been confirmed as actively exploited and is not listed in the CISA KEV catalog.

  • What is the CVSS score for CVE-2026-89913?

    CVE-2026-89913 has a CVSS score of 8.8 out of 10, rated High severity (CVSS 3.1). The vector string is CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H .

  • Is there a patch available for CVE-2026-89913?

    Yes. CVE-2026-89913 has been patched. Fixed versions include 6.18.51, 7.2.5 and 7.3-rc1. If you are running Linux kernel 4.12 or later up to the fix versions, apply the relevant patch for your kernel branch.

  • Is CVE-2026-89913 actively exploited?

    No. CVE-2026-89913 has not been confirmed as actively exploited. It is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.