Skip to main content

Linux Kernel EUVDEUVD-2026-86807

| CVE-2026-97953 HIGH
2026-09-25 Linux GHSA-4j3p-7h59-gp38
7.0
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Local access to host with stmmac NIC
  2. Delivery
    Craft highly-fragmented large TSO skb
  3. Exploit
    Submit while TX ring nearly full
  4. Execution
    Availability check underestimates descriptors
  5. Persist
    Allocator overwrites DMA-owned descriptors
  6. Impact
    TX ring corruption, crash/hang (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires the stmmac (STMicroelectronics DWMAC/DWXGMAC) Ethernet driver in use with TCP Segmentation Offload / GSO enabled, and a local sender able to submit a highly-fragmented large TSO skb while the TX descriptor ring is nearly full - the corruption only occurs when the underestimated free-descriptor count lets an oversized allocation slip through. Limiting factors: the driver is specific to STMicro MAC hardware (largely ARM/embedded SoCs, not typical x86 servers); the trigger is the host's own transmit path (local, not a remotely chosen packet); and it is data-/timing-dependent on both skb fragmentation and ring occupancy (hence AC:H), so it is not reliably reproducible on demand.

Impact

This is a Linux kernel bug in the stmmac (STMicroelectronics DWMAC/DWXGMAC) Ethernet driver's TSO transmit path, where the free-TX-descriptor availability check undercounts the descriptors that stmmac_tso_allocator() actually consumes, allowing a highly-fragmented TSO skb to pass the check with too few free slots and write past the available descriptors - overwriting descriptors still owned by the DMA engine and corrupting the TX ring. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/C:L/I:L/A:H = 7.0) is internally inconsistent with the mechanism: the trigger is the host's own transmit path, so a local process generating fragmented TSO/GSO traffic drives the bug rather than a remote unauthenticated packet - AV:N and PR:N are questionable and likely overstate reach (a remote peer does not choose how the local stack fragments an outgoing TSO skb). AC:H is well-justified: it requires a specifically fragmented skb layout and a full descriptor ring, a data-dependent corner case, not a deterministic path. The realistic impact is availability (ring corruption → crash/hang), so the C:L/I:L allocation and the 'Information Disclosure' tag are not supported by the description, which mentions no read/leak primitive. EPSS, KEV, and POC signals are all absent: no evidence of active exploitation or public exploit code, and this is a stability/DoS-class fix rather than a targeted attack primitive. Net: a legitimate memory-corruption bug worth patching on affected embedded/ARM deployments, but real-world priority is low-to-moderate - it is a local, high-complexity DoS, not the network-reachable 7.0 the raw score implies.

Exploit ScenarioDerived

On a device using the stmmac Ethernet driver with TSO/segmentation offload enabled, a local process transmits a carefully-constructed, highly-fragmented large TSO buffer while the TX descriptor ring is nearly full. The flawed availability check underestimates the descriptors needed, so the allocator writes past the free slots, overwrites descriptors still owned by the DMA engine, and corrupts the TX ring - hanging or crashing the networking path. No public exploit code is identified, and the data-dependent, high-complexity nature makes reliable triggering difficult.

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

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

Alert me

AnalysisAIv1 – Sep 25, 2026

TX ring memory corruption in the Linux kernel's stmmac (STMicroelectronics DWMAC/DWXGMAC) Ethernet driver allows a local sender to overwrite TX descriptors that are still owned by the DMA engine. The flaw is in the stmmac TSO transmit path: stmmac_tso_xmit() underestimates how many free descriptors a highly-fragmented TSO skb will actually consume, so a nearly-full descriptor ring can pass the availability check and let stmmac_tso_allocator() write past the available slots. Exploitation requires the stmmac driver in use with TSO/GSO enabled and a local sender able to submit a large, heavily-fragmented TSO skb at the moment the ring is almost full; the assessed impact is limited integrity damage and availability loss on affected (largely ARM/embedded STMicro MAC) systems, and no public exploit has been identified at time of analysis.

RemediationAI

Apply the upstream fix by upgrading to the patched kernel versions published for this issue: Linux 6.12.111, Linux 6.18.53 or Linux 7.2.7 on the corresponding stable branches (mainline fixed in 7.3-rc3), or cherry-pick the referenced upstream fixes ffa6d2481bc1c87f822ecd626561484e4ee24cef, c28175220f808c867d5618de8ecc6dbcc815c773, 65820fc743eae322f7f94f6a64d07861211d4b21 and 5e38d732ec67a5b1f9a56e6c73add480c4b6030a from git.kernel.org; vendor-released patches are noted as available, so distribution and SoC-vendor kernels should be updated as soon as backports land. Where an immediate kernel upgrade is not possible, the most direct compensating control is to turn off TSO and GSO on stmmac interfaces (for example 'ethtool -K <iface> tso off gso off'), which routes traffic through the non-TSO transmit path that does not use the flawed descriptor estimate - the trade-off is higher CPU utilisation and reduced transmit throughput, which can matter on the embedded ARM platforms where this driver is most common. Reducing MTU or avoiding workloads that generate large, highly-fragmented TSO skbs lowers the chance of triggering the nearly-full-ring condition, and restricting which local users or containers may generate bulk outbound TCP traffic limits exposure, but neither is a substitute for patching because the underlying descriptor bookkeeping remains wrong. Because the assessed vector is local (AV:L/PR:L), restricting local shell/container access and monitoring for transmit-time errors, DMA/TX ring corruption warnings or unexplained interface resets on stmmac-equipped hosts is advisable until the fix is applied.

Affected VersionsENISA

Linux f748be531d7012c456b97f66091d86b3675c5fef <ffa6d2481bc1c87f822ecd626561484e4ee24cef
Linux patch: 7.2.7
Linux patch: 0
Linux f748be531d7012c456b97f66091d86b3675c5fef <65820fc743eae322f7f94f6a64d07861211d4b21
Linux f748be531d7012c456b97f66091d86b3675c5fef <5e38d732ec67a5b1f9a56e6c73add480c4b6030a
Linux 4.7
Linux patch: 7.3-rc3
Linux f748be531d7012c456b97f66091d86b3675c5fef <c28175220f808c867d5618de8ecc6dbcc815c773
Linux patch: 6.12.111
Linux patch: 6.18.53

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 stmmac driver is the mainline Linux Ethernet driver for STMicroelectronics DWMAC/DWXGMAC MAC hardware, common on ARM and embedded SoCs rather than typical x86 servers, and it is tracked generically under the CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* since the code ships as part of the kernel tree. When TCP Segmentation Offload (TSO) is active, the stack hands the driver a large skb that the driver segments in hardware; stmmac_tso_xmit() must first confirm the TX descriptor ring has enough free slots. Its estimate, (skb->len - proto_hdr_len) / TSO_MAX_BUFF_SIZE + 1, treats the payload as few large chunks, but stmmac_tso_allocator() maps each skb fragment individually, so every fragment costs at least one descriptor no matter how small, plus one descriptor for the L2/L3/L4 headers and, when the MSS changes, one more for the MSS context descriptor. For a highly fragmented skb the real descriptor demand is far higher than the estimate, so the check can pass while the ring is effectively full; the allocator then writes past the free region and clobbers descriptors the DMA engine still owns, corrupting the TX ring. The root-cause class is an out-of-bounds write driven by a faulty resource/space computation (no CWE was assigned in the input data); the supplied tag labels this 'Information Disclosure', but the kernel patch and the independent assessment describe memory corruption with integrity and availability impact rather than confidentiality loss (assessed C:N/I:L/A:H). All mainline and stable releases carrying the vulnerable logic since the referenced tracker commit are affected; the fix introduces stmmac_tso_get_num_desc() to compute the exact requirement (header, linear payload, each fragment, plus the MSS context descriptor when needed) and uses it in the availability check. No public exploit code or confirmed active exploitation was identified at time of analysis.

Know when the next one hits your stack

  • 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.0 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H
vuln.today AI 5.3 MEDIUM

Trigger is the host-local TSO transmit path (AV:L, PR:L) and is data/ring-state dependent (AC:H); impact is TX-ring corruption causing crash/hang (A:H, I:L) with no disclosure (C:N).

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.0 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:23 cve.org
HIGH 7.0
CVE Published
Sep 25, 2026 - 10:23 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

net: stmmac: fix TX descriptor availability check for TSO traffic

stmmac_tso_xmit() estimates the number of free TX descriptors required by a TSO skb as:

(skb->len - proto_hdr_len) / TSO_MAX_BUFF_SIZE + 1

which assumes the payload is split into TSO_MAX_BUFF_SIZE chunks. This underestimates the descriptors actually consumed by stmmac_tso_allocator(), since each fragment is mapped individually and so it needs at least one descriptor regardless of its size. Moreover, one descriptor is used for the L2/L3/L4 headers and, when the MSS changes, one more is consumed for the MSS context descriptor. For a highly fragmented TSO skb the check can therefore pass even when the ring has too few free slots. stmmac_tso_allocator() then writes past the available descriptors, overwriting descriptors still owned by the DMA engine, corrupting the TX ring. Add stmmac_tso_get_num_desc() to compute the exact number of descriptors needed for the header, the linear payload and each fragment, plus the MSS context descriptor when required, and use it in the availability check.

Executive ViewAI

Why It Matters

Organizations running Linux on ARM/embedded systems with STMicroelectronics DWMAC/DWXGMAC Ethernet hardware are exposed to a high-severity local memory corruption flaw in the stmmac driver's TSO transmit path, which can cause system crashes, data integrity loss, or potential privilege escalation. Patch available per vendor advisory; however, no public exploit identified at time of analysis. Leadership should prioritize patching these devices to prevent operational disruption and potential lateral movement from a compromised local account.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 67% exploitable
Prevalence
Low
STMicro DWMAC driver, mainly ARM/embedded SoC NICs, not general server fleets
Data Quality
4 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.4%
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
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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 Affected

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