CVE-2026-98489 PUBLISHED

net: atl1c: fix soft lockup on out-of-range tpd_cons read

Assigner: Linux
Reserved: 25.09.2026 Published: 18.10.2026 Updated: 18.10.2026

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

net: atl1c: fix soft lockup on out-of-range tpd_cons read

The hardware can report an out-of-range tpd_cons (seen as 0xffff) while the PCIe link/MAC is resetting. An out-of-range value can never be reached and the loop below would spin forever. To avoid a soft lockup treat it as "nothing new to clean" instead.

Reproduced on two machines, same NIC (Qualcomm Atheros AR8151 v2.0, 4-port), triggered by rebooting a Mikrotik CCR2004 PCIe card that the ports are directly linked to:

  • Ubuntu 26.04.1 LTS, kernel 7.0.0-31-generic. The link-flap precursor, before the lockup was captured with a full trace elsewhere:

    atl1c 0000:05:00.0 enp5s0f0: NETDEV WATCHDOG: CPU: 4: transmit queue 2 timed out 489984 ms atl1c 0000:05:00.0: MAC state machine can't be idle since disabled for 10ms second atl1c 0000:05:00.0: atl1c: enp5s0f0 NIC Link is Up<65535 Mbps Full Duplex>

65535 (0xffff) here is the same value tpd_cons reads back once the loop below gets stuck.

  • Proxmox VE, kernel 7.0.14-11-pve. Same NIC/trigger, this time caught by the soft lockup watchdog with a full stack trace:

    watchdog: BUG: soft lockup - CPU#12 stuck for 354s! [napi/eth%d-0:329] CPU: 12 UID: 0 PID: 329 Comm: napi/eth%d-0 Tainted: P O L 7.0.14-11-pve #1 PREEMPT(lazy) RIP: 0010:atl1c_clean_tx+0x142/0x2d0 [atl1c] Call Trace: <TASK> __napi_poll+0x32/0x1e0 napi_threaded_poll_loop+0x286/0x2e0 napi_threaded_poll+0xfd/0x140 kthread+0xf7/0x130 ret_from_fork+0x2da/0x3a0 ret_from_fork_asm+0x1a/0x30 </TASK>

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to e7acd4cdeccbcdfd407adeb72b1eba14d1145b6f (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 5ea2576a4f5ec476f33169fdbe9090d2b038ad13 (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 4daf80da0c38b8cd92c111ad96cb38322aabf586 (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 57b55367b6e3accc55a989afeaf127063e3614dc (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 9f2cc71a2e2799d9c993c73f1bd36507eef6ae43 (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 586847400b1168a88917287ac02c2c91a620b841 (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to d4ab263e40fcf7cfa38a43ec774067d32eb94e16 (excl.)
  • affected from 43250ddd75a35d1f7926d989a10fefd30c37eaa7 to 36c2009d90f2210ef92e6f4f2850e8b57b09e754 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 2.6.29 is affected
  • unaffected from 0 to 2.6.29 (excl.)
  • unaffected from 5.10.271 to 5.10.* (incl.)
  • unaffected from 5.15.222 to 5.15.* (incl.)
  • unaffected from 6.1.189 to 6.1.* (incl.)
  • unaffected from 6.6.158 to 6.6.* (incl.)
  • unaffected from 6.12.112 to 6.12.* (incl.)
  • unaffected from 6.18.55 to 6.18.* (incl.)
  • unaffected from 7.2.9 to 7.2.* (incl.)
  • unaffected from 7.3-rc5 to * (incl.)

References