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

Published Sep 25, 2026
·
Updated

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

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

manaxdpset() publishes the new program into apc->bpfprog before it allocates anything, because manapreallocrxbufs() sizes the buffers from it via managetrxbufcfg(). When that allocation fails the function returns the error directly, skipping the errdeallocrxbuffs 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->bpfprog still points at it. The next consumer of manaxdpget() - typically manachnsetxdp() from manaallocqueues() on the following ifup, or after a TX timeout reset - then calls bpfprogadd() 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.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    Restore the previous XDP program pointer in mana_xdp_set() when per-queue RX buffer pre-allocation fails, before returning the allocation error.

Event History

Sep 25, 2026
CVE Published
via MITRE·10:23 AM
Data Sourced
via MITRE·10:23 AM
Description
Data Sourced
via NVD·11:17 AM
Description

Frequently Asked Questions

1

What conditions are required to trigger the stale XDP program pointer?

An attempt to attach an XDP program through an ordinary "ip link set dev ethX xdp obj ..." operation must reach the mana driver, and per-queue RX buffer pre-allocation must fail. The failed attach leaves the driver pointer referring to a program whose reference may then be released by the BPF core.

2

When is the freed pointer likely to be used after a failed attachment?

A later consumer of mana_xdp_get() can use it, typically when queues are allocated during the next interface-up operation or following a TX-timeout reset. That path can call bpf_prog_add() on freed memory.

3

How can I determine whether a system encountered the vulnerable state?

Look for a failed XDP attachment on a mana interface where RX buffer pre-allocation could not be satisfied, followed by an interface-down/interface-up cycle or a TX timeout reset. The provided information does not identify a specific log message or other direct detection indicator.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203