Skip to main content

Linux Kernel CVE-2026-43465

| EUVDEUVD-2026-28771 CRITICAL
2026-05-08 Linux GHSA-wm82-xv2w-22mm
Critical
Disputed · 9.8 Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Load malicious/buggy XDP program
  2. Delivery
    Send crafted packets
  3. Exploit
    Trigger bpf_xdp_pull_data()
  4. Execution
    Drop tail fragments
  5. Persist
    Corrupt page_pool references
  6. Impact
    Trigger kernel memory errors

Vulnerability Assessment

Exploitation Conditions

Requires mlx5-based Mellanox/NVIDIA network adapter hardware with striding receive queue (RQ) mode enabled in the driver configuration. XDP multi-buffer programs must be loaded and actively processing packets on the affected interface, specifically programs that invoke bpf_xdp_pull_data() or bpf_xdp_adjust_tail() BPF helper functions to modify packet buffer layouts. The vulnerable code path activates when XDP programs drop tail fragments after moving packet headers into the linear buffer portion. While CVSS suggests remote unauthenticated exploitation, actual impact is limited to systems with this specific hardware and software configuration stack. Standard Linux systems without mlx5 hardware, without XDP programs loaded, or using non-striding RQ modes are not vulnerable regardless of kernel version.

Impact

The CVSS 9.8 Critical score (AV:N/AC:L/PR:N/UI:N) appears inflated for the actual exploitability of this vulnerability. The network attack vector designation conflicts with the technical reality that exploitation requires: (1) XDP programs executing on the affected system, (2) mlx5 network hardware present, (3) specific XDP multi-buffer operations like bpf_xdp_pull_data(), and (4) striding RQ mode configuration. The EPSS score of 0.02% (4th percentile) correctly reflects low real-world exploitation likelihood. No CISA KEV listing exists, no public exploit code identified, and the issue was discovered through kernel self-tests rather than active exploitation. The kernel memory corruption impact is significant (triggering WARNING splats and potential system instability), but exploitation complexity is high due to the specialized conditions required. Security teams should prioritize this for systems running mlx5-based network adapters with XDP workloads, but it does not warrant emergency patching for general Linux deployments. The specific commit hashes and version ranges provide clear patch lineage verification.

Exploit ScenarioDerived

An attacker or misconfigured XDP program triggers the vulnerability by sending packets to a system running mlx5 network adapters with XDP multi-buffer enabled. When the XDP program processes packets and calls bpf_xdp_pull_data() on packets with minimal payload, the driver incorrectly skips fragment counting for dropped tail fragments. Over repeated packet processing cycles, page pool reference counts become negative, causing kernel WARNING splats and potential memory corruption that destabilizes the network stack or triggers kernel panics during subsequent memory operations.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – May 11, 2026

Reference counting flaw in mlx5e network driver causes kernel memory corruption when XDP multi-buffer programs modify packet layouts via bpf_xdp_pull_data() or bpf_xdp_adjust_tail(). Affects Linux kernel versions 6.18.x through 6.19.9, with vendor patches available for 6.18.19, 6.19.9, and 7.0. The vulnerability triggers negative page pool reference counts leading to memory management errors, discovered by the drivers/net/xdp.py selftest. While CVSS scores this 9.8 Critical with network vector, the technical context suggests local impact requiring specific XDP program execution. EPSS exploitation probability is low (0.02%, 4th percentile) with no evidence of active exploitation or public POC at time of analysis.

RemediationAI

Apply vendor-released patches for affected kernel versions: upgrade to Linux 6.18.19, 6.19.9, or 7.0+ which contain fixes from commits 7d7342a18fadcdb, 043bd62f748bc, and db25c42c2e1f9 available at https://git.kernel.org/stable/c/7d7342a18fadcdb70a63b3c930dc63528ce51832, https://git.kernel.org/stable/c/043bd62f748bc9fd98154037aa598cffbd3c667c, and https://git.kernel.org/stable/c/db25c42c2e1f9c0d136420fff5e5700f7e771a6f. The patches restore proper fragment counting for all original XDP buffer fragments across XDP_TX, XDP_REDIRECT, and XDP_PASS actions. If immediate patching is not feasible, temporarily disable XDP multi-buffer programs on mlx5 network interfaces via 'ip link set dev <interface> xdp off', though this eliminates XDP performance benefits. Alternatively, configure mlx5 driver to use legacy receive queue mode instead of striding RQ by setting driver parameters, which avoids the vulnerable code path but may reduce packet processing throughput by 15-30%. Systems not using mlx5 hardware or XDP programs are not affected and do not require mitigation.

Affected VersionsENISA

Linux 87bcef158ac1faca1bd7e0104588e8e2956d10be <043bd62f748bc9fd98154037aa598cffbd3c667c
Linux f2557d7fa38e9475b38588f5c124476091480f53
Linux patch: 7.0
Linux 87bcef158ac1faca1bd7e0104588e8e2956d10be <db25c42c2e1f9c0d136420fff5e5700f7e771a6f
Linux 87bcef158ac1faca1bd7e0104588e8e2956d10be <7d7342a18fadcdb70a63b3c930dc63528ce51832
Linux patch: 0
Linux patch: 6.19.9
Linux cb9edd583e23979ee546981be963ad5f217e8b18
Linux 6.18
Linux patch: 6.18.19
Linux 8b051d7f530e8a5237da242fbeafef02fec6b813

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

This vulnerability affects the mlx5e driver's implementation of XDP (eXpress Data Path) multi-buffer handling in striding receive queues. The Linux kernel's page_pool memory management system initializes network packet pages with reference counts (pp_ref_count) that track fragment usage. When XDP programs call bpf_xdp_pull_data() or bpf_xdp_adjust_tail() to modify packet buffer layouts, the mlx5 driver failed to properly count dropped fragments on the driver side. The affected CPE products (cpe:2.3:a:linux:linux) identify systems running mlx5-based Mellanox/NVIDIA network adapters with XDP multi-buffer support. The issue stems from incomplete fragment accounting after a previous fix (commit 87bcef158ac1) that corrected assumptions about XDP buffer immutability. While no CWE is assigned, this represents a memory management error class involving reference counting in kernel network drivers.

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

Sources disagree (Medium–Critical)
Vendor (Linux) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
SUSE CRITICAL
Red Hat 5.5 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
May 11, 2026 - 08:22 NVD
9.8 (CRITICAL)
Patch available
May 08, 2026 - 16:18 EUVD
CVE Published
May 08, 2026 - 14:22 nvd
UNKNOWN (no severity yet)
CVE Published
May 08, 2026 - 14:22 nvd
CRITICAL 9.8

DescriptionCVE.org

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

net/mlx5e: RX, Fix XDP multi-buf frag counting for striding RQ

XDP multi-buf programs can modify the layout of the XDP buffer when the program calls bpf_xdp_pull_data() or bpf_xdp_adjust_tail(). The referenced commit in the fixes tag corrected the assumption in the mlx5 driver that the XDP buffer layout doesn't change during a program execution. However, this fix introduced another issue: the dropped fragments still need to be counted on the driver side to avoid page fragment reference counting issues.

The issue was discovered by the drivers/net/xdp.py selftest, more specifically the test_xdp_native_tx_mb:

  • The mlx5 driver allocates a page_pool page and initializes it with

a frag counter of 64 (pp_ref_count=64) and the internal frag counter to 0.

  • The test sends one packet with no payload.
  • On RX (mlx5e_skb_from_cqe_mpwrq_nonlinear()), mlx5 configures the XDP

buffer with the packet data starting in the first fragment which is the page mentioned above.

  • The XDP program runs and calls bpf_xdp_pull_data() which moves the

header into the linear part of the XDP buffer. As the packet doesn't contain more data, the program drops the tail fragment since it no longer contains any payload (pp_ref_count=63).

  • mlx5 device skips counting this fragment. Internal frag counter

remains 0.

  • mlx5 releases all 64 fragments of the page but page pp_ref_count is

63 => negative reference counting error.

Resulting splat during the test:

WARNING: CPU: 0 PID: 188225 at ./include/net/page_pool/helpers.h:297 mlx5e_page_release_fragmented.isra.0+0xbd/0xe0 [mlx5_core] Modules linked in: [...] CPU: 0 UID: 0 PID: 188225 Comm: ip Not tainted 6.18.0-rc7_for_upstream_min_debug_2025_12_08_11_44 #1 NONE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 RIP: 0010:mlx5e_page_release_fragmented.isra.0+0xbd/0xe0 [mlx5_core] [...] Call Trace: <TASK> mlx5e_free_rx_mpwqe+0x20a/0x250 [mlx5_core] mlx5e_dealloc_rx_mpwqe+0x37/0xb0 [mlx5_core] mlx5e_free_rx_descs+0x11a/0x170 [mlx5_core] mlx5e_close_rq+0x78/0xa0 [mlx5_core] mlx5e_close_queues+0x46/0x2a0 [mlx5_core] mlx5e_close_channel+0x24/0x90 [mlx5_core] mlx5e_close_channels+0x5d/0xf0 [mlx5_core] mlx5e_safe_switch_params+0x2ec/0x380 [mlx5_core] mlx5e_change_mtu+0x11d/0x490 [mlx5_core] mlx5e_change_nic_mtu+0x19/0x30 [mlx5_core] netif_set_mtu_ext+0xfc/0x240 do_setlink.isra.0+0x226/0x1100 rtnl_newlink+0x7a9/0xba0 rtnetlink_rcv_msg+0x220/0x3c0 netlink_rcv_skb+0x4b/0xf0 netlink_unicast+0x255/0x380 netlink_sendmsg+0x1f3/0x420 __sock_sendmsg+0x38/0x60 ____sys_sendmsg+0x1e8/0x240 ___sys_sendmsg+0x7c/0xb0 [...] __sys_sendmsg+0x5f/0xb0 do_syscall_64+0x55/0xc70

The problem applies for XDP_PASS as well which is handled in a different code path in the driver.

This patch fixes the issue by doing page frag counting on all the original XDP buffer fragments for all relevant XDP actions (XDP_TX , XDP_REDIRECT and XDP_PASS). This is basically reverting to the original counting before the commit in the fixes tag.

As frag_page is still pointing to the original tail, the nr_frags parameter to xdp_update_skb_frags_info() needs to be calculated in a different way to reflect the new nr_frags.

Executive ViewAI

Why It Matters

CVE-2026-43465 is a critical kernel memory corruption vulnerability in the mlx5e network driver affecting Linux kernel versions 6.18.x through 6.19.9, exploitable through XDP multi-buffer packet modification operations. Organizations running affected kernel versions on systems with mlx5e hardware and XDP workloads face potential system instability and memory safety violations; immediate patching is required to maintain system integrity and operational continuity.

Business Impact: High
Compensating Controls

Vendor-released patch: kernel 6.18.19, 6.19.9, or 7.0+. If immediate patching is not feasible, disable or suspend XDP multi-buffer programs (bpf_xdp_pull_data/bpf_xdp_adjust_tail) until patched; restrict XDP workload execution to non-critical paths. Monitor system logs for kernel memory errors and mlx5e driver warnings as interim detection control.

Threat Intelligence Overview

EPSS Score
0.0%
Top 96% exploitable
Data Quality
6 sources
Confidence: High

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Yes
Human Impact
High

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
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: Critical
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

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