CVE-2026-98427: net/sched: codel: bound the dropping loop per dequeue call

Published Oct 14, 2026
·
Updated

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

net/sched: codel: bound the dropping loop per dequeue call

The CoDel control law schedules the next drop one interval/sqrt(count) after the previous drop, using the configured interval (codelparams.interval). For very small intervals the scheduled step rounds down to zero, so the dropping loop in codeldequeue() never advances and drains the entire backlog under the qdisc lock in one call - an unprivileged user can trigger a soft lockup this way.

Fix in the shared codel code used by both codel and fqcodel:

1. Make the control-law step at least 1 tick so the dropping loop always moves forward.

2. Cap the dropping loop at CODELMAXDROPSPERDEQUEUE (256) drops per codeldequeue() call, resyncing dropnext to now when the cap is hit: the catch-up owed to the loop grows with the idle gap and the backlog, which no interval threshold can bound. This is a deliberate behaviour change after long idle gaps.

The cap applies to fqcodel (4b549a2ef4be) and the mac80211 TXQ path (fixed interval, cap only).

The target sojourn delay (codelparams.target) is not validated: it does not feed the control law, so a sub-tick value is aggressive rather than deadlock-prone.

Conditions to recreate the bug: - tc qdisc add dev lo root handle 1: tbf rate 1kbit burst 2kb limit 1000000 - tc qdisc add dev lo parent 1:1 handle 10: codel interval 2us target 1ms noecn limit 1000000 (same for fqcodel) - unpatched kernel: tc accepts it; a UDP flood under the 1kbit tbf soft-lockups (watchdog: BUG: soft lockup) while one codeldequeue() call drops the backlog under the qdisc lock - patched kernel: same setup, at most 256 drops per dequeue call, no soft lockup

Testing: claim reproducer and interval 2us/3us variants run clean; tdc qdisc category passes (see the selftests patch).

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch 4b549a2ef4be

Event History

Oct 14, 2026
CVE Published
via MITRE·01:27 PM
Data Sourced
via MITRE·01:27 PM
Description

Frequently Asked Questions

1

Who is realistically exposed to this issue?

Systems using the Linux kernel CoDel or fq_codel queueing disciplines are exposed. The shared CoDel code is affected, and the cap also applies to the mac80211 TXQ path.

2

What does an attacker need to do to trigger the problem?

An unprivileged user must be able to cause CoDel to operate with a very small configured interval and create backlog conditions that enter the dropping loop. When the calculated control-law step rounds down to zero, the loop can drain the backlog while holding the qdisc lock and trigger a soft lockup.

3

What changes in the resolved behavior?

The control-law step is forced to at least one tick, preventing the drop schedule from failing to advance. Each codel_dequeue() call is also limited to 256 drops; when that limit is reached, drop_next is resynchronized to the current time.

4

Is configuring only a very small target delay sufficient to trigger it?

No. The target sojourn delay is not part of the control law, so a sub-tick target value does not cause this behavior. The relevant setting is the configured CoDel interval.

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