CVE-2026-98305
7.8 HIGHPublished 2026-10-06 · Updated 2026-10-07
AI risk analysis
- Summary
- The Linux kernel's DSA driver for mxl862xx switches has a race condition where statistics polling continues after port teardown, leading to use-after-free errors when accessing freed port structures. This occurs because the stats poll is started before setup completion and not properly stopped during teardown.
- Exploitability
- Exploitation is moderately difficult requiring precise timing of port teardown and stats polling operations, with no public exploit references available.
- Blast radius
- The vulnerability could affect network infrastructure devices using mxl862xx switches, potentially leading to system crashes or data corruption when handling network traffic.
- Detection
- No reliable host or network indicator is derivable from the published description.
- Prioritized remediation
- Apply kernel patch for Linux kernel version 6.10-rc1 or later which includes the fix for mxl862xx stats polling race condition.
Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.
NVD description
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.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
All references
Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.
Related CVEs
- HIGHCVE-2026-98050
- HIGHCVE-2026-98251
- HIGHCVE-2026-98276
- CRITICALCVE-2026-101980
- HIGHCVE-2026-64580
- HIGHCVE-2026-64581
- HIGHCVE-2026-89823
- HIGHCVE-2026-89836
Related by shared AI tags and CWE weakness class. Browse the full archive.