CVE-2026-89511

qede: Fix NULL pointer dereference in TPA fragment processing

State
Published
Severity
7.5 High
Published
Sep 11, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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 build_skb() support.") accidentally dropped the assignment of tpa_info->buffer.data in qede_tpa_start().

When memory pressure causes an SKB allocation failure in qede_tpa_start(), the driver sets tpa_start_fail = true and attempts to recycle the physical page later in qede_tpa_end() via qede_reuse_page(). However, because buffer.data was left uninitialized (NULL), qede_reuse_page() 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 qede_fill_frag_skb(), causing a kernel panic.

Example crash from production system: BUG: unable to handle kernel NULL pointer dereference at 0x8 RIP: qede_fill_frag_skb+0x96/0x430 [qede] Call Trace: qede_rx_int+0xb06/0x1de0 qede_poll+0x2f4/0x6c0 __napi_poll+0x2d/0x130

Fix the root cause by restoring the tpa_info->buffer.data assignment in qede_tpa_start(), ensuring valid pages are correctly tracked and recycled. Additionally, update the stale comment for struct qede_agg_info::buffer to reflect its current usage.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before e2214e2793154b745436e46c6a9a7985d9b3781dAffected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before dd8bc0a9d87d2b048711edd17ba7286432edd285Affected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before fa7c9bd2c4a8de167e2fb32968ca4d91dd774375Affected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before a5e1fdc126ab337d601d1a00cc4b47910679d005Affected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before 7f911e208b3ca2c76d9f2bbba1f54b9403568c10Affected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before 2a952fb1b20d83e83ca852773e6188511f7d2191Affected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before f5c8619ccbd70102642120c4c6fda1c048a555fdAffected
  • 8a8633978b842c88fbcfe00d4e5dde96048f630e to before 06aa3d26327f24edd039ff249672fdf6f2ba5695Affected
LinuxLinux
  • 4.18Affected
  • before 4.18Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.