CVE-2026-89511: qede: Fix NULL pointer dereference in TPA fragment processing
In the Linux kernel, the following vulnerability has been resolved:
qede: Fix NULL pointer dereference in TPA fragment processing
Under memory pressure, the qede driver encounters NULL pointer dereferences when processing TPA continuation fragments.
Commit 8a8633978b84 ("qede: Add buildskb() support.") accidentally dropped the assignment of tpainfo->buffer.data in qedetpastart().
When memory pressure causes an SKB allocation failure in qedetpastart(), the driver sets tpastartfail = true and attempts to recycle the physical page later in qedetpaend() via qedereusepage(). However, because buffer.data was left uninitialized (NULL), qedereusepage() pushes a "ghost" BD (valid DMA mapping but NULL data pointer) back into the active Rx ring.
The next time the hardware uses this ring slot, it passes a NULL page to qedefillfragskb(), causing a kernel panic.
Example crash from production system: BUG: unable to handle kernel NULL pointer dereference at 0x8 RIP: qedefillfragskb+0x96/0x430 [qede] Call Trace: qederxint+0xb06/0x1de0 qedepoll+0x2f4/0x6c0 napipoll+0x2d/0x130
Fix the root cause by restoring the tpainfo->buffer.data assignment in qedetpastart(), ensuring valid pages are correctly tracked and recycled. Additionally, update the stale comment for struct qedeagginfo::buffer to reflect its current usage.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
qedeto a version that resolves this vulnerability.Fixed in 8a8633978b84 - Configuration
Fix the root cause by restoring/ensuring the assignment of tpa_info->buffer.data in qede_tpa_start(), so that buffer.data remains initialized to a valid page when memory pressure causes SKB allocation failure and TPA fragment processing proceeds.
qede Linux kernel driver tpa_info->buffer.data assignment = restored/ensured non-NULL valid page pointer
Event History
Frequently Asked Questions
What systems are exposed to this issue?
Systems using the Linux kernel qede network driver are exposed when they process TPA continuation fragments. The failure condition is specifically associated with memory pressure causing an SKB allocation failure during TPA processing.
What is the practical impact if the flaw is triggered?
A malformed receive-ring entry with a valid DMA mapping but a NULL data pointer can be reused by the hardware. Processing that entry can pass a NULL page to qede_fill_frag_skb() and panic the kernel.
Does exploiting this require an attacker to have local access or special privileges?
The provided information does not identify any local-access or privilege requirement. It describes the issue as occurring during network receive processing when memory pressure triggers an SKB allocation failure.
How can administrators identify a likely occurrence?
Affected systems may show a kernel NULL pointer dereference with qede_fill_frag_skb in the instruction pointer or call trace, potentially alongside qede_rx_int, qede_poll, and __napi_poll. The issue is tied to TPA continuation-fragment processing under memory pressure.