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

net: mana: restore the XDP program pointer when pre-allocation fails

mana_xdp_set() publishes the new program into apc->bpf_prog before it
allocates anything, because mana_pre_alloc_rxbufs() sizes the buffers
from it via mana_get_rxbuf_cfg(). When that allocation fails the
function returns the error directly, skipping the err_dealloc_rxbuffs
label which is the only place that restores the previous pointer.

The attach is reported as failed, so the BPF core drops the reference it
held for the caller and the program can be freed, while apc->bpf_prog
still points at it. The next consumer of mana_xdp_get() - typically
mana_chn_setxdp() from mana_alloc_queues() on the following ifup, or
after a TX timeout reset - then calls bpf_prog_add() on freed memory.

This is reachable from an ordinary "ip link set dev ethX xdp obj ..."
whenever the per-queue RX buffer pre-allocation cannot be satisfied.

Restore the previous program on that error path.
Published: 2026-09-25
Score: 7.0 High
EPSS: < 1% Very Low
KEV: No
Impact: Use‑After‑Free that may lead to kernel crash or arbitrary code execution
Action: Apply patch
AI Analysis

Impact

The Linux kernel mana driver publishes an XDP program before allocating per‑queue buffers. If the buffer pre‑allocation fails, the error path skips the cleanup that would restore the previous program pointer. The stale pointer remains in apc->bpf_prog, and subsequent calls to bpf_prog_add() operate on freed memory, resulting in a use‑after‑free scenario that can corrupt kernel state and cause a crash or allow code execution with kernel privileges.

Affected Systems

All Linux kernel releases containing the unpatched mana driver are affected. The exploit is triggered by the normal command to attach an XDP program (e.g., "ip link set dev ethX xdp obj …"). No specific kernel version range is listed, so any system with the mana driver prior to the patch is considered vulnerable.

Risk and Exploitability

The EPSS score is below 1%, the CVSS v3 score is 7.0, and the vulnerability is not listed in CISA KEV. The primary attack vector is a local privileged action that attaches an XDP program, which an attacker with root or equivalent access can perform. Successful exploitation can lead to denial of service or privilege escalation to kernel mode. While the probability of exploitation appears low, the impact of a kernel crash or code execution is significant.

Generated by OpenCVE AI on October 1, 2026 at 08:11 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the kernel to a revision that includes the commit restoring the program pointer in the mana driver.
  • If an upgrade is not immediately possible, prevent the routine from attaching XDP programs to interfaces that could experience buffer allocation failures or monitor kernel logs for allocation errors and disable XDP on the affected device.
  • Apply any vendor‑supplied patches or backport the fix from upstream; consult the Linux distribution’s security advisories for backport status.

Generated by OpenCVE AI on October 1, 2026 at 08:11 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 01 Oct 2026 06:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 30 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: mana: restore the XDP program pointer when pre-allocation fails mana_xdp_set() publishes the new program into apc->bpf_prog before it allocates anything, because mana_pre_alloc_rxbufs() sizes the buffers from it via mana_get_rxbuf_cfg(). When that allocation fails the function returns the error directly, skipping the err_dealloc_rxbuffs label which is the only place that restores the previous pointer. The attach is reported as failed, so the BPF core drops the reference it held for the caller and the program can be freed, while apc->bpf_prog still points at it. The next consumer of mana_xdp_get() - typically mana_chn_setxdp() from mana_alloc_queues() on the following ifup, or after a TX timeout reset - then calls bpf_prog_add() on freed memory. This is reachable from an ordinary "ip link set dev ethX xdp obj ..." whenever the per-queue RX buffer pre-allocation cannot be satisfied. Restore the previous program on that error path.
Title net: mana: restore the XDP program pointer when pre-allocation fails
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:11:21.414Z

Reserved: 2026-09-25T10:18:58.205Z

Link: CVE-2026-97955

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:23.147

Modified: 2026-10-19T10:17:46.807

Link: CVE-2026-97955

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97955 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T08:15:05Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference