Skip to main content

Linux Kernel EUVDEUVD-2026-59241

| CVE-2026-72342 HIGH
2026-08-15 Linux GHSA-q42x-cp58-jpg7
8.4
CVSS 3.1 · Vendor: Linux
Share

Severity by source

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

Driver initialization lifecycle control requires CAP_NET_ADMIN (PR:H); race condition is timing-dependent (AC:H); impact is kernel crash (A:H) with marginal integrity side-effect and no confirmed confidentiality exposure.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Aug 17, 2026 - 08:35 vuln.today
CVSS changed
Aug 17, 2026 - 06:22 NVD
8.4 (HIGH)
Patch available
Aug 15, 2026 - 07:20 EUVD
CVE Published
Aug 15, 2026 - 05:55 cve.org
HIGH 8.4
CVE Published
Aug 15, 2026 - 05:55 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

net/mlx5e: Fix HV VHCA stats agent registration race

mlx5e_hv_vhca_stats_create() registers the stats agent through mlx5_hv_vhca_agent_create(). The helper publishes the agent in hv_vhca->agents[type] under agents_lock and immediately schedules an asynchronous control invalidation on the HV VHCA workqueue before returning to mlx5e.

The asynchronous invalidation invokes the control agent's invalidate callback, which reads the hypervisor control block and forwards the command to mlx5e_hv_vhca_stats_control(). That callback may either:

  • call cancel_delayed_work_sync(&priv->stats_agent.work), or
  • call queue_delayed_work(priv->wq, &sagent->work, sagent->delay).

However, the delayed_work and priv->stats_agent.agent are only initialized after mlx5_hv_vhca_agent_create() returns to mlx5e:

agent = mlx5_hv_vhca_agent_create(...); /* publish + invalidate */ ... priv->stats_agent.agent = agent; /* too late */ INIT_DELAYED_WORK(&priv->stats_agent.work, ...); /* too late */

If the asynchronous control path runs before the two assignments above, it can:

  • Operate on an uninitialized delayed_work whose timer.function is

NULL. queue_delayed_work() calls add_timer() unconditionally, so when the timer expires the timer softirq invokes a NULL function pointer.

  • Re-initialize the timer later through INIT_DELAYED_WORK() while

the timer is already enqueued in the timer wheel, corrupting the hlist (entry.pprev cleared while the previous bucket node still points at this entry).

  • When the worker eventually runs, mlx5e_hv_vhca_stats_work() reads

sagent->agent (NULL) and dereferences it inside mlx5_hv_vhca_agent_write().

Fix this by:

  • Initializing priv->stats_agent.work before invoking

mlx5_hv_vhca_agent_create(), so the work is always in a valid state when the control callback observes it.

  • Adding a struct mlx5_hv_vhca_agent **ctx_update out-parameter

to mlx5_hv_vhca_agent_create(). The helper writes the agent pointer to *ctx_update before publishing into hv_vhca->agents[] and triggering the agents_update flow, so any callback subsequently invoked from that flow already sees a valid priv->stats_agent.agent. This avoids having the control callback participate in agent initialization.

While at it, access priv->stats_agent.agent with READ_ONCE()/WRITE_ONCE() for the cross-CPU access with the worker, and clear priv->stats_agent.buf on the agent_create() failure path.

AnalysisAI

The mlx5e HV VHCA stats agent registration in the Linux kernel contains an initialization race condition that can produce NULL pointer dereferences or kernel timer list corruption, crashing a Hyper-V guest VM. Affected systems are those running Linux on Microsoft Hyper-V with a Mellanox mlx5e NIC across stable kernel trees spanning 6.1 through 7.1, with the root cause being that mlx5_hv_vhca_agent_create() publishes the agent and triggers an asynchronous workqueue callback before the caller has initialized the associated delayed_work structure and agent pointer. No public exploit code has been identified and EPSS exploitation probability is 0.21% (12th percentile); vendor patches have been released across all active stable branches and upstream commit references are available via kernel.org.

Technical ContextAI

The vulnerability resides in the net/mlx5e driver - the Linux kernel driver for Mellanox/NVIDIA ConnectX-5 and related Ethernet adapters - specifically within the Hyper-V Virtual Host Channel Adapter (HV VHCA) subsystem used to expose telemetry statistics to a Hyper-V hypervisor host. The root cause is a classic initialization race: mlx5_hv_vhca_agent_create() publishes the newly created agent in hv_vhca->agents[] under agents_lock and immediately schedules an asynchronous control invalidation on the HV VHCA workqueue, but the caller (mlx5e_hv_vhca_stats_create) only writes priv->stats_agent.agent and calls INIT_DELAYED_WORK() after that function returns. If the async invalidation callback (mlx5e_hv_vhca_stats_control) is dispatched on a second CPU before those two assignments complete, it can invoke queue_delayed_work() on a zero-initialized delayed_work whose timer.function is NULL (causing the timer softirq to call a NULL function pointer), or re-initialize the timer via INIT_DELAYED_WORK() while it is already active in the timer wheel (corrupting the hlist doubly-linked list), or dereference sagent->agent which is still NULL inside mlx5_hv_vhca_agent_write(). Although no CWE has been formally assigned, this maps substantively to CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization) and CWE-476 (NULL Pointer Dereference). CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers all affected kernel versions as reported in EUVD-2026-59241.

RemediationAI

The primary fix is to upgrade to a patched kernel version: Linux 6.1.178, 6.6.145, 6.12.97, 6.18.40, or 7.1.5 for stable-branch users; mainline 7.2-rc3 or later for development builds. Upstream stable commits addressing this issue are available at https://git.kernel.org/stable/c/b0fd6d3bb06182f19f3b59a53f57b5098b99048a, https://git.kernel.org/stable/c/24c77044cdfcf5b8b2e9f3b620d8b9aa392d9048, https://git.kernel.org/stable/c/e8fc3304cb67fb1d7d11ff9ef9abd5fb64e7e1d5, https://git.kernel.org/stable/c/60fddda7207d81fea71463abd403f0b10f74f2e1, https://git.kernel.org/stable/c/f5677797b094c3ec5fb350eb8ea7710b88a3d018, and https://git.kernel.org/stable/c/89b25b5f46f488ea3b29b3444864c76944c9075b. If immediate kernel patching is not feasible, a targeted compensating control is to blacklist the mlx5_core module on Hyper-V guests that do not require SR-IOV Mellanox NIC support (echo 'blacklist mlx5_core' >> /etc/modprobe.d/mlx5.conf && update-initramfs -u), though this will disable the NIC driver entirely and cause network outages on any guest relying on mlx5e for connectivity - making this control unsuitable in most production environments. Alternatively, disabling Hyper-V SR-IOV pass-through for mlx5e adapters at the hypervisor configuration level removes the HV VHCA negotiation path entirely, at the cost of losing SR-IOV performance acceleration.

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 Not-Affected

Share

EUVD-2026-59241 vulnerability details – vuln.today

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