Skip to main content

Linux Kernel CVE-2026-98305

| EUVDEUVD-2026-93290 HIGH
2026-10-06 Linux GHSA-fp8x-jqcp-85wv
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Local privileged access to MxL862xx DSA device
  2. Delivery
    Trigger driver teardown, shutdown, or probe failure
  3. Exploit
    Stats poll re-arms past non-atomic cancel
  4. Execution
    Use-after-free on freed dsa_port list
  5. Impact
    Kernel memory corruption (DoS or privilege escalation)

Vulnerability Assessment

Exploitation Conditions

Exploitation requires (1) a system whose kernel is built with the mxl862xx DSA driver AND physical/attached MaxLinear MxL862xx switch hardware present and bound; (2) the ability to drive one of the vulnerable code paths - DSA teardown on unregister, driver shutdown, driver unbind, or a failed dsa_register_switch() during probe - which in practice needs privileged control over the device (e.g. root-level sysfs unbind or module operations); and (3) winning a timing race, because the WORK_STOPPED flag test in mxl862xx_get_stats64() is not atomic with cancel_delayed_work_sync() in shutdown, so the stats poll must re-arm in the narrow window after reading the flag but before/around the cancel. LIMITING factors: no remote vector, no user-interaction path, hardware-specific (config-gated and tied to uncommon switch silicon), and the non-deterministic race window makes reliable triggering difficult. These sharply constrain realistic exploitation despite the 7.8 base score.

Impact

This is a use-after-free / race-condition flaw in the Linux kernel DSA driver for MaxLinear MxL862xx Ethernet switches, where a stats-poll delayed work item can run against freed dsa_port structures during failed registration, teardown, or shutdown. The CVSS vector (AV:L/AC:L/PR:L/UI:N, C:H/I:H/A:H, score 7.8) frames it as a locally exploitable, high-impact memory-corruption bug, but the signals point to low real-world priority: EPSS is only 0.16% (5th percentile), it is NOT on CISA KEV, and no public exploit code is identified. Exploitation status: no public exploit identified at time of analysis. Two caveats temper the raw CVSS: (1) the root cause is an inherently non-deterministic race (the description repeatedly stresses non-atomic flag checks and re-arm-after-cancel windows), so the vendor's AC:L understates real difficulty - AC:H is more defensible; and (2) the trigger paths (teardown, driver unbind, shutdown, probe failure) normally require privileged control over the device, so PR:L likely understates the true privilege requirement (PR:H). Net: a legitimate memory-safety fix worth patching on affected hardware, but not an urgent, widely-weaponizable threat.

Exploit ScenarioDerived

On a device using a MxL862xx DSA switch, a local actor with the ability to unbind/re-bind the switch driver or induce a probe failure triggers teardown while the periodic CRC-error stats poll is still armed; the poll then walks dsa_port structures that DSA has already freed. Winning the narrow race (the WORK_STOPPED test is not atomic with the cancel) corrupts kernel memory, potentially yielding denial of service or privilege escalation. No public proof-of-concept exists, and reliable exploitation requires defeating a timing-dependent window.

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 – Oct 07, 2026

A race condition in the Linux kernel's mxl862xx DSA driver for MaxLinear MxL862xx Ethernet switches allows a stats-polling delayed work item to execute against already-freed dsa_port structures, yielding a use-after-free with high confidentiality, integrity and availability impact. The flaw is reachable only by an authenticated, highly privileged local actor (CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H per independent assessment) who can drive a teardown path - switch unregister, driver shutdown, driver unbind, or a failed dsa_register_switch() during probe - and simultaneously win a narrow timing race, since the WORK_STOPPED flag test is not atomic with cancel_delayed_work_sync(). Exploitation additionally requires kernel builds compiled with the mxl862xx driver and actual MaxLinear MxL862xx switch silicon present and bound, so practical exposure is limited; there is no public exploit identified at time of analysis, EPSS is a low 0.16% (5th percentile), and the issue is not in CISA KEV.

RemediationAI

Vendor-released patch: apply the upstream fixes in stable commits 97df811a11d4f76bc2ffe67b6bf730263f56c668 and 9e92ad4630f5dd1838ce6bbe6b1bd2c73d34de36 (https://git.kernel.org/stable/c/97df811a11d4f76bc2ffe67b6bf730263f56c668, https://git.kernel.org/stable/c/9e92ad4630f5dd1838ce6bbe6b1bd2c73d34de36), which move the stats-poll arming after .setup and add a .teardown handler using disable_delayed_work_sync(); EUVD indicates the fix levels as Linux 7.2.8 and 7.3-rc4, so upgrade to a release containing these commits and reboot. Where patching is not immediately possible, the most effective compensating control is to not build or load the driver on hosts that do not need it - omit CONFIG for the mxl862xx DSA driver or blacklist the module - at the cost of losing management of any MxL862xx switch silicon on that system; on hosts that must keep the hardware, restrict who can trigger teardown paths (root-only removal of the module, sysfs unbind, and switch deregistration), since the flaw needs privileged local control plus a timing race and has no remote or unauthenticated vector; note that simply avoiding graceful shutdown or module removal does not remove the failed-probe variant, where a failed dsa_register_switch() can itself free ports while the poll is armed. There is no public exploit identified at time of analysis and no CISA KEV listing, so prioritization should follow the low EPSS signal (0.16%, 5th percentile) and the hardware-specific, high-privilege prerequisites rather than emergency patching, though kernel updates that already include the fix should be rolled out as part of normal maintenance.

Affected VersionsENISA

Linux 7.1
Linux patch: 7.2.8
Linux patch: 0
Linux patch: 7.3-rc4
Linux a21d33a5265f0b31d935a8b9b2b6faefb5185911 <97df811a11d4f76bc2ffe67b6bf730263f56c668
Linux a21d33a5265f0b31d935a8b9b2b6faefb5185911 <9e92ad4630f5dd1838ce6bbe6b1bd2c73d34de36

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 affected code lives in the Linux kernel's Distributed Switch Architecture (DSA) subsystem, specifically the driver for MaxLinear MxL862xx Ethernet switch chips (CPE: cpe:2.3:a:linux:linux). The root-cause class is a use-after-free combined with a work-queue race (CWE-416 / CWE-362): mxl862xx_setup() arms a delayed stats-poll work item before mxl862xx_setup_mdio() runs, and nothing disarms it until dsa_register_switch() fails and returns to mxl862xx_probe(). Because DSA frees the dsa_port list before probing returns, any poll that fires after .setup or a later stage of dsa_tree_setup() fails will walk freed port objects. A second, equivalent race exists at shutdown: the WORK_STOPPED flag checked in mxl862xx_get_stats64() is not atomic with the cancel_delayed_work_sync() in mxl862xx_shutdown(), so a re-arm that read the flag just before it was set can queue the poll after the cancel has already returned, defeating the shutdown sequencing. The upstream fix repositions the arming so the poll is enabled only after .setup succeeds and introduces a .teardown op - invoked by DSA on unregister and after failed registration, in both cases before ports are freed - that uses disable_delayed_work_sync() to drain any running poll and make all subsequent queueing attempts no-ops; shutdown() uses the same primitive, while remove() and the probe error path only set WORK_STOPPED for crc_err_work to check before it walks the ports. The defect touches driver-internal state management rather than a network protocol, which is why the attack surface is local and hardware-gated rather than remotely reachable.

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

Local only (AV:L); AC:H because success depends on winning a non-atomic cancel/re-arm race; PR:H since driver teardown/unbind normally needs privilege; kernel UAF yields high C/I/A.

3.1 AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

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
Oct 07, 2026 - 07:22 NVD
7.8 (HIGH)
Patch available
Oct 06, 2026 - 10:02 EUVD
CVE Published
Oct 06, 2026 - 08:46 cve.org
UNKNOWN (no severity yet)
CVE Published
Oct 06, 2026 - 08:46 cve.org
HIGH 7.8

DescriptionCVE.org

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

net: dsa: mxl862xx: disable the stats poll on teardown

mxl862xx_setup() arms the stats poll before mxl862xx_setup_mdio(), and nothing stops it until dsa_register_switch() has returned an error to mxl862xx_probe(). DSA frees the dsa_port list before it returns, so a poll that fires once .setup or a later step of dsa_tree_setup() has failed walks freed ports. On shutdown the user ports stay registered, and the WORK_STOPPED flag test in mxl862xx_get_stats64() is not atomic with the cancel in mxl862xx_shutdown(), so a re-arm that read the flag before it was set queues the poll after cancel_delayed_work_sync() has returned.

Arm the poll once .setup has succeeded and stop it from a .teardown op, which DSA calls on unregister and after a failed registration, in both cases before it frees the ports. Use disable_delayed_work_sync() there and in shutdown(): it drains a running poll as the cancel did and turns every later attempt to queue the work into a no-op, so the re-arm cannot bring the poll back. remove() and the probe error path only set WORK_STOPPED, which crc_err_work tests before it walks the ports.

Executive ViewAI

Why It Matters

A high-severity use-after-free flaw exists in the Linux kernel's mxl862xx driver used for MaxLinear MxL862xx Ethernet switches, giving an already highly privileged local user on an affected host the ability to corrupt kernel memory, potentially causing a system crash or disclosure of sensitive data. The exposure is narrow: it requires specific MaxLinear switch hardware and driver binding, an authenticated privileged local account, and a difficult timing race, and no public exploit code has been identified. Leadership should treat this as a routine kernel patch-management priority scoped to the limited set of hosts that run this hardware rather than a broad enterprise-wide incident.

Business Impact: Low
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
niche DSA driver for specific MaxLinear MxL862xx Ethernet switch hardware
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.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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Low

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
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.

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