Skip to main content

Linux Kernel CVE-2026-74568

| EUVDEUVD-2026-59633 CRITICAL
2026-08-15 Linux GHSA-gxv2-5vpw-rgjq
Critical
Disputed · 9.3 Vendor: Linux
Share

Severity by source

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY
9.3 CRITICAL
AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

Attacker must control a KVM guest (PR:L) and win a cross-CPU timing race (AC:H); guest-to-host memory corruption gives S:C and full CIA impact.

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
SUSE
6.4 MEDIUM
AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Red Hat
7.0 MEDIUM
qualitative

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 12:31 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
9.3 (CRITICAL)
Patch available
Aug 15, 2026 - 13:04 EUVD
CVE Published
Aug 15, 2026 - 12:28 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 15, 2026 - 12:28 cve.org
CRITICAL 9.3

DescriptionCVE.org

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

KVM: arm64: vgic: Fix race between LPI release and re-registration

Fix a potential race between decrementing an LPI's reference count and evicting that structure from the LPI xarray.

LPI structures are maintained in the VGIC LPI xarray (dist->lpi_xa). When the reference count of an LPI structure drops to zero, vgic_release_lpi_locked() removes the structure from the xarray and frees it under the xarray lock.

However, the release of an LPI can race with a concurrent LPI re-registration with the same INTID via vgic_add_lpi() on another CPU, since the reference count drop and the xarray eviction are not performed in a single atomic step. This can happen e.g. if the guest issues a DISCARD while the LPI is still referenced from a vCPU's active-pending list (ap_list), and the same INTID is re-mapped via MAPTI.

Particularly, vgic_release_lpi_locked() is called from two distinct paths: direct release via vgic_put_irq(), and deferred release via vgic_release_deleted_lpis(). During direct release, the issue can result in deleting a newly registered LPI from the xarray:

CPU0 (Releasing LPI) CPU1 (Adding new LPI) ==== ===== vgic_put_irq() __vgic_put_irq() refcount_dec_and_test() vgic_add_lpi() xa_lock_irqsave() old_irq = xa_load(.., intid) vgic_try_get_irq_ref(old_irq) == false new IRQ inserted --> __xa_store(.., intid, ..) xa_unlock_irqrestore() xa_lock_irqsave(); vgic_release_lpi_locked() __xa_erase(.., irq->intid) <-- BUG: new IRQ is erased kfree_rcu(old_irq)

During the deferred release path, the old IRQ can be leaked:

CPU0 (Releasing LPI) CPU1 (Adding new LPI) ==== ===== vgic_put_irq_norelease() __vgic_put_irq() refcount_dec_and_test() irq->pending_release = true vgic_add_lpi() xa_lock_irqsave() old_irq = xa_load(.., intid) vgic_try_get_irq_ref(oldirq) == false BUG: old IRQ overwritten --> __xa_store(.., intid, ..) xa_unlock_irqrestore()

vgic_release_deleted_lpis() xa_lock_irqsave() xa_for_each() { .. } <-- old IRQ with pending_release = true is gone, so it cannot be released

To fix the direct release path, move the reference count drop inside the xarray lock, making sure that vgic_add_lpi() never encounters the to-be-released LPI.

In the deferred release path, the refcount drop must happen under a raw spinlock, so the xarray lock cannot be grabbed, and the same solution does not work. Instead, update vgic_add_lpi(), so that if it evicts an LPI from the xarray, it takes on the responsibility of freeing it. Consequently, an LPI may now be freed concurrently after a deferred release drops the refcount, so accessing the pending_release field is no longer safe from use-after-free. Delete all uses of the flag, and update vgic_release_deleted_lpis() to identify orphaned LPIs purely based on their refcount.

AnalysisAI

Local privilege escalation and host memory corruption in the Linux kernel's KVM arm64 virtual GIC (vgic) LPI handling allows a malicious guest to trigger a use-after-free by racing LPI release against re-registration. Affecting arm64 KVM hosts (introduced by the LPI refcounting rework, present through Linux 6.17), a guest that issues an ITS DISCARD while an LPI is still referenced and then re-maps the same INTID via MAPTI can cause the kernel to erase a newly registered LPI from the xarray or leak an orphaned structure. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
Gain code execution inside arm64 KVM guest
Delivery
Configure emulated ITS and map LPI
Exploit
Issue DISCARD while LPI on ap_list
Install
Race MAPTI re-map against refcount drop
C2
Trigger use-after-free in host kernel
Execute
Corrupt host memory or crash
Impact
Escalate toward host control

Vulnerability AssessmentAI

Exploitation Exploitation requires an arm64 host running KVM with vGIC (GICv3/v4) and ITS emulation exposed to the guest, and attacker control inside a guest capable of issuing ITS commands. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment Signals point to a genuine but not urgent-at-scale issue. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker with control of an untrusted KVM guest on an unpatched arm64 host issues an ITS DISCARD for an LPI that is still referenced on a vCPU's active-pending list, then re-maps the same INTID via MAPTI while, on another CPU, the release path drops the LPI's refcount. Winning this race causes the kernel to either erase the freshly registered LPI from the xarray or free a structure that is still in use, yielding a use-after-free in host kernel memory that can be groomed toward host code execution or a crash. …
Remediation Vendor-released patch: apply the upstream fixes at https://git.kernel.org/stable/c/292e80a159aa88635bf668a7212cfdf526b8bd52 and https://git.kernel.org/stable/c/cbfe2b24a1ea9de35032dbdd100fdc700f5be92d, which are recorded as landing in the 7.1.8 stable and 7.2-rc6 releases per EUVD; on distribution kernels, take your vendor's backported kernel package rebuilt against these commits rather than pinning a mainline tag. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, inventory all production and development systems running arm64 KVM hypervisors (Linux kernel through version 6.17) and classify by criticality. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

CVE-2026-74568 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy