Skip to main content

Linux Kernel CVE-2026-72409

| EUVDEUVD-2026-59308 HIGH
2026-08-15 Linux GHSA-xrfh-4hq6-c36g
7.5
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.4 MEDIUM

Trigger is a local suspend event (AV:L), race condition plus hardware specificity raise complexity (AC:H), suspend typically requires low-privilege user or power event (PR:L, UI:R); availability-only impact.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 09:11 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
7.5 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:56 cve.org
HIGH 7.5
CVE Published
Aug 15, 2026 - 05:56 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

net: mvneta: re-enable percpu interrupt on resume

On Marvell MPIC platforms (Armada 370/XP/38x), mvneta uses a percpu IRQ disable/enable scheme for NAPI: the ISR (mvneta_percpu_isr) calls disable_percpu_irq() to mask the MPIC per-CPU interrupt and schedules NAPI poll, which calls enable_percpu_irq() on completion to unmask.

If suspend occurs while NAPI poll is pending (between disable_percpu_irq in the ISR and enable_percpu_irq in poll completion), the interrupt is never re-enabled:

  1. mvneta_percpu_isr: disable_percpu_irq() + napi_schedule()

=> MPIC masked, percpu_enabled cpumask bit cleared

  1. NAPI poll does not complete before suspend proceeds

(on PREEMPT_RT this is highly likely since softirqs run in ksoftirqd which gets frozen; on non-RT it can happen when softirq processing is deferred to ksoftirqd)

  1. mvneta_stop_dev => napi_disable(): cancels the pending poll

without executing the completion path

  1. suspend_device_irqs => IRQCHIP_MASK_ON_SUSPEND: masks MPIC

(already masked, but records IRQS_SUSPENDED)

  1. Resume: mpic_resume checks irq_percpu_is_enabled() => false

(bit was cleared in step 1) => skips unmask

  1. mvneta_start_dev only restores device-level INTR_NEW_MASK,

does not touch the MPIC per-CPU mask

Result: MPIC per-CPU interrupt stays masked permanently. The NIC generates interrupts (INTR_NEW_CAUSE != 0) but the CPU never receives them, causing complete loss of network connectivity.

Fix by calling on_each_cpu(mvneta_percpu_enable) in the resume path to unconditionally unmask the MPIC per-CPU interrupt regardless of pre-suspend state.

AnalysisAI

Permanent network connectivity loss on Marvell MPIC platforms (Armada 370/XP/38x) results from the mvneta driver failing to re-enable its per-CPU interrupt after a suspend/resume cycle when a NAPI poll was in-flight at suspend time. The race leaves the MPIC per-CPU interrupt masked indefinitely post-resume: the NIC generates interrupts that the CPU never receives, causing a complete outage until reboot. No public exploit exists (EPSS 0.22%, 13th percentile) and the vulnerability is absent from CISA KEV; patches have been released across eight Linux stable branches.

Technical ContextAI

The mvneta driver manages Gigabit Ethernet on Marvell Armada SoCs (370/XP/38x) using the Marvell Per-CPU Interrupt Controller (MPIC). Its NAPI implementation relies on a paired disable/enable scheme: mvneta_percpu_isr calls disable_percpu_irq() to mask the MPIC and schedules a poll, which in its completion path calls enable_percpu_irq() to unmask. The defect is a state-management race - no CWE is assigned - where the kernel suspend path (mvneta_stop_dev → napi_disable()) cancels a pending poll without executing its completion, leaving the percpu_enabled cpumask bit cleared. The MPIC resume handler (mpic_resume) reads irq_percpu_is_enabled(), finds the bit cleared, and skips unmasking. On PREEMPT_RT kernels the race is nearly deterministic because softirqs execute in ksoftirqd, which is frozen by the suspend framework before the poll can complete. CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

The primary fix is upgrading to a patched stable kernel release: 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.97, 6.18.40, 7.1.5, or 7.2-rc1. Individual fix commits are available at git.kernel.org/stable (bf88cd3b, 8c7a489a, 82c13027, be626ac1, 1cc312dc, b84dd48f, 5bdb33ff, fd398d64) - note these are upstream commits, not tagged release packages; verify distribution-packaged versions before deploying. For Marvell Armada systems that cannot be immediately patched, disable system suspend via power management configuration (e.g., 'systemctl mask sleep.target suspend.target hibernate.target') to eliminate the race trigger entirely; the trade-off is loss of power-saving suspend functionality. Rebooting an affected system post-resume restores networking. No network-layer compensating control can prevent the interrupt masking since the vulnerability is triggered locally.

Vendor StatusVendor

SUSE

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

Share

CVE-2026-72409 vulnerability details – vuln.today

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