Skip to main content

Linux Kernel CVE-2026-80975

| EUVDEUVD-2026-76298 HIGH
2026-09-11 Linux GHSA-r5c2-6w2m-2m2q
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local shell on QNAP NAS appliance
  2. Delivery
    Issue MCU commands to induce timeout in qnap_mcu_exec()
  3. Exploit
    Function returns with stale reply->data pointing at freed stack frame
  4. Execution
    Late MCU reply triggers serdev callback write into freed memory
  5. Persist
    Corrupt kernel stack of next thread using that region
  6. Impact
    Escalate privileges or crash kernel

Vulnerability Assessment

Exploitation Conditions

Exploitation requires local shell access with low-level user privileges (PR:L) on a system running QNAP NAS hardware with the qnap-mcu MFD driver compiled and loaded. The attacker must induce a command timeout in qnap_mcu_exec() - either by causing the MCU not to respond within its timeout window or by waiting for an unsolicited MCU message - and the corrupting write must land while the freed frame is still accessible. The driver is only present on QNAP appliances; generic Linux systems do not load it. Remote exploitation is not possible. The race window is narrow and hardware-dependent, limiting opportunistic exploitation. Kernels patched to 6.18.51, 7.2.4, or containing the fix commits are not affected.

Impact

The CVSS 3.1 vector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H is credible for the impact metrics (full C/I/A is appropriate for stack corruption in kernel space) but AC:L is optimistic - exploiting the race requires inducing a command timeout and then timing a late MCU reply or unsolicited message to land in the freed frame, a timing-sensitive condition that independent analysis rates AC:H. EPSS at 0.20% (10th percentile) and absence from CISA KEV are consistent with a hardware-specific kernel driver bug affecting only systems with QNAP MCU hardware under load. No public POC exists. Real-world risk is substantially narrower than the raw CVSS score implies: exploitation is bounded to physical or local-shell access on QNAP NAS appliances, requires triggering a specific timing window, and yields kernel memory corruption whose precise impact depends on what occupies the reclaimed stack.

Exploit ScenarioDerived

An attacker with a local shell on a QNAP NAS appliance issues a sequence of MCU commands designed to induce timeouts - for example by saturating the UART bus or exploiting load conditions - causing qnap_mcu_exec() to return with the stale stack pointer. When the MCU subsequently sends a late reply or an unsolicited status packet, the serdev callback writes into the freed stack frame, corrupting a kernel stack belonging to an unrelated thread and potentially redirecting execution. No public proof-of-concept exists; the race is inherently hardware-dependent and timing-sensitive.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 13, 2026

Stack memory corruption in the Linux kernel's qnap-mcu MFD driver allows a local low-privileged user on QNAP hardware to corrupt kernel stack memory, potentially enabling privilege escalation. The driver's qnap_mcu_exec() publishes an on-stack receive buffer to the serdev receive path, which runs asynchronously; when a command times out and the function returns, reply->data still points at the deallocated stack frame. A late MCU reply or unsolicited MCU message then overwrites whatever occupies that stack memory next, yielding C:H/I:H/A:H impact. No public exploit exists and EPSS is 0.20% (10th percentile), consistent with a kernel driver bug requiring physical or local QNAP hardware access.

RemediationAI

Upgrade to Linux kernel 6.18.51, 7.2.4, or later (7.3-rc1+ for mainline), which relocate the receive buffer into the driver's devm_kzalloc-managed struct. Kernel distribution maintainers should apply the stable backport commits available at https://git.kernel.org/stable/c/0b6680e306397097a97767447368221fac753809, https://git.kernel.org/stable/c/8391ee06d08845a0a165b5fe679ba326915166b2, and https://git.kernel.org/stable/c/47504742cea7878ebd1bf1491bbed923df6b90b1. As a compensating control on systems awaiting a kernel update, restrict shell access to unprivileged local users on QNAP appliances and monitor for unexpected kernel oopses or process crashes, which may indicate the race is being hit naturally under load. There is no viable in-kernel workaround that does not require the patch, as the fix requires restructuring driver memory ownership.

Affected VersionsENISA

Linux 998f70d1806bb718a7565f350283e4a79c8cbb4b <47504742cea7878ebd1bf1491bbed923df6b90b1
Linux 998f70d1806bb718a7565f350283e4a79c8cbb4b <8391ee06d08845a0a165b5fe679ba326915166b2
Linux patch: 6.18.51
Linux patch: 0
Linux patch: 7.3-rc1
Linux patch: 7.2.4
Linux 6.14
Linux 998f70d1806bb718a7565f350283e4a79c8cbb4b <0b6680e306397097a97767447368221fac753809

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The qnap-mcu driver (drivers/mfd/qnap-mcu.c) manages communication with the embedded MCU in QNAP NAS appliances over a serial device (serdev). qnap_mcu_exec() allocates a 37-byte receive buffer on the stack and assigns its address to reply->data before blocking on wait_for_completion_timeout(). The serdev receive callback qnap_mcu_receive_buf() runs from flush_to_ldisc() in a separate execution context and is not serialized against exec() by bus_lock (which exec() holds across the timeout wait). On timeout, exec() returns - unwinding the stack frame - while reply->data retains the stale pointer. The root cause is a classic use-after-return race (related to CWE-825, Expired Pointer Dereference): the MCU's asynchronous communication path can write into the reclaimed stack region. The fix relocates the rx buffer into the heap-allocated struct qnap_mcu (devm_kzalloc), ensuring the buffer outlives any individual command invocation.

Know when Qnap gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

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

AV:L and PR:L correct; AC:H because exploiting the race requires inducing a timeout and timing a late MCU write, a hardware-dependent condition.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/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:N/SI:N/SA:N
SUSE 5.7 MEDIUM
AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:H/A:H
Red Hat 5.5 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 13, 2026 - 07:22 NVD
7.8 (HIGH)
Patch available
Sep 11, 2026 - 21:18 EUVD
CVE Published
Sep 11, 2026 - 19:42 cve.org
HIGH 7.8
CVE Published
Sep 11, 2026 - 19:42 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

mfd: qnap-mcu: keep the reply buffer alive past a command timeout

qnap_mcu_exec() publishes an on-stack buffer to the receive path:

unsigned char rx[QNAP_MCU_RX_BUFFER_SIZE]; ... reply->data = rx; reply->length = length;

and qnap_mcu_receive_buf() writes into it from the serdev receive path, which runs out of flush_to_ldisc() and is not serialized against qnap_mcu_exec() at all. bus_lock cannot cover it, because qnap_mcu_exec() holds that mutex across wait_for_completion_timeout().

On a timeout qnap_mcu_exec() returns with reply->data still pointing at its own frame. A reply that arrives late, or an unsolicited message from the MCU, is then written into a stack frame that has been left, corrupting whatever runs next on that stack. The same applies when qnap_mcu_write() fails, since that path returns without touching the reply state either.

Move the receive buffer into struct qnap_mcu. It is 37 bytes and the structure is devm_kzalloc()ed, so it lives as long as the driver, and a late write lands in memory that is still valid and is reinitialized by the next command. bus_lock keeps commands from sharing it.

This deliberately does not clear reply->data or reply->length on the timeout path. Doing so races with qnap_mcu_receive_buf(), which reads both after its

if (!reply->length) return size;

check: clearing reply->data gives a NULL dereference, and clearing reply->length alone removes the reply->received == reply->length exit condition, so the copy loop runs until the uart chunk is consumed and overruns the buffer. Leaving both set keeps the write bounded by reply->length, which qnap_mcu_exec() has already checked against sizeof(mcu->rx).

Executive ViewAI

Why It Matters

QNAP NAS storage devices are vulnerable to local privilege escalation through a kernel memory corruption flaw in the qnap-mcu driver, allowing low-privileged users with local access to gain full system control. This directly impacts storage infrastructure security and data access controls, particularly in environments where service accounts or contractors have legitimate local access to NAS devices. Organizations should prioritize patching if they operate QNAP appliances, as the vulnerability enables internal users to escalate from limited to administrative privileges.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
hardware-specific driver, only QNAP NAS appliances affected
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Qnap

View all
CVE-2014-6271 CRITICAL POC
9.8 Sep 24

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which

CVE-2014-7169 CRITICAL POC
9.8 Sep 25

GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of

CVE-2017-6361 CRITICAL POC
9.8 Mar 23

QNAP QTS before 4.2.4 Build 20170313 allows attackers to execute arbitrary commands via unspecified vectors. Rated criti

CVE-2017-6360 CRITICAL POC
9.8 Mar 23

QNAP QTS before 4.2.4 Build 20170313 allows attackers to gain administrator privileges and obtain sensitive information

CVE-2017-13067 CRITICAL POC
9.8 Sep 14

QNAP has patched a remote code execution vulnerability affecting the QTS Media Library in all versions prior to QTS 4.2.

CVE-2017-6359 CRITICAL POC
9.8 Mar 23

QNAP QTS before 4.2.4 Build 20170313 allows attackers to gain administrator privileges and execute arbitrary commands vi

CVE-2018-0706 HIGH POC
8.8 Jul 17

Exposure of Private Information in QNAP Q'center Virtual Appliance version 1.7.1063 and earlier could allow authenticate

CVE-2017-5227 HIGH POC
7.5 Mar 23

QNAP QTS before 4.2.4 Build 20170313 allows local users to obtain sensitive Domain Administrator password information by

CVE-2017-7876 CRITICAL POC
10.0 Jun 15

This command injection vulnerability in QTS allows attackers to run arbitrary commands in the compromised application. R

CVE-2018-0707 HIGH POC
7.2 Jul 17

Command injection vulnerability in change password of QNAP Q'center Virtual Appliance version 1.7.1063 and earlier could

CVE-2021-28799 CRITICAL POC
9.8 May 13

An improper authorization vulnerability has been reported to affect QNAP NAS running HBS 3 (Hybrid Backup Sync. Rated cr

CVE-2019-7195 CRITICAL POC
9.8 Dec 05

This external control of file name or path vulnerability allows remote attackers to access or modify system files. Rated

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
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

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