Description
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
2. 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)
3. mvneta_stop_dev => napi_disable(): cancels the pending poll
without executing the completion path
4. suspend_device_irqs => IRQCHIP_MASK_ON_SUSPEND: masks MPIC
(already masked, but records IRQS_SUSPENDED)
5. Resume: mpic_resume checks irq_percpu_is_enabled() => false
(bit was cleared in step 1) => skips unmask
6. 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.
Published: 2026-08-15
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

When the Marvell mvneta network driver handles an interrupt, it masks the per‑CPU MPIC interrupt and schedules a NAPI poll that will unmask it after completion. If the system is suspended while the poll is still pending, the interrupt remains masked once the machine resumes, even though the NIC continues to generate interrupts that the CPU never receives. This results in a complete loss of network connectivity. The weakness is an improper restoration of a critical resource, corresponding to CWE‑732: Incorrect Permission Assignment for Critical Resource.

Affected Systems

All Linux kernel builds that include the mvneta driver for MPIC‑based Marvell platforms, such as Armada 370, Armada 370 XP, and Armada 38x, are affected. Any kernel version compiled with this driver prior to the fix is vulnerable; the advisory does not specify a granular version range.

Risk and Exploitability

The CVSS score of 7.5 indicates high severity, but the EPSS score of < 1% shows very low likelihood of exploitation in production environments. The vulnerability is not listed in CISA KEV. Based on the description, it is inferred that the likely attack vector requires an adversary with local system access who can trigger a suspend/resume cycle while the affected interface is active, such as a user with the ability to control power management or to initiate a suspend. The impact is a local Denial of Service to network services; no remote code execution or data breach is possible.

Generated by OpenCVE AI on August 22, 2026 at 04:20 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that incorporates the mvneta per‑CPU interrupt re‑enable fix from the latest stable release.
  • If a kernel upgrade cannot be performed immediately, disable automatic suspend or configure the system to use hibernation instead of suspend while the network interface is active.
  • After a resume, monitor network connectivity and if it remains down, run a command or script that re‑enables the per‑CPU interrupt on each CPU, or perform a reboot to clear the permanently masked state.

Generated by OpenCVE AI on August 22, 2026 at 04:20 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-732

Mon, 17 Aug 2026 16:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-249
CWE-400

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Sat, 15 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-249
CWE-400

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description 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 2. 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) 3. mvneta_stop_dev => napi_disable(): cancels the pending poll without executing the completion path 4. suspend_device_irqs => IRQCHIP_MASK_ON_SUSPEND: masks MPIC (already masked, but records IRQS_SUSPENDED) 5. Resume: mpic_resume checks irq_percpu_is_enabled() => false (bit was cleared in step 1) => skips unmask 6. 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.
Title net: mvneta: re-enable percpu interrupt on resume
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:43:49.648Z

Reserved: 2026-08-09T03:40:39.926Z

Link: CVE-2026-72409

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:14.493

Modified: 2026-08-17T06:19:07.680

Link: CVE-2026-72409

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72409 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T04:30:06Z

Weaknesses
  • CWE-732

    Incorrect Permission Assignment for Critical Resource

  • CWE-772

    Missing Release of Resource after Effective Lifetime