CVE-2026-90072: net/sched: sfq: clamp quantum to avoid signed overflow soft lockup

Published Sep 17, 2026
·
Updated

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

net/sched: sfq: clamp quantum to avoid signed overflow soft lockup

sfqinit() sets q->quantum = pschedmtu(qdiscdev(sch)) (unsigned). A device with a huge MTU (e.g. dummy with maxmtu == 0 accepting MTU 2147483634) makes pschedmtu() return 0x80000000, so slot->allot = INTMIN and INTMIN + INTMIN toggles between INTMIN and 0 forever, spinning sfqdequeue() under the qdisc lock.

Clamp the quantum to [256, 1 << 20] so the refill loop terminates. The lower bound also covers q->quantum == 0 (pschedmtu() returning 0), which spins sfqdequeue() identically. sfqchange() already rejects a negative quantum, so only the init path was exposed.

Conditions to recreate the bug: a device whose MTU (plus hardheaderlen) wraps pschedmtu() into the sign bit (e.g. a dummy device with maxmtu == 0 accepting MTU 2147483634). Requires CAPNETADMIN in a user namespace.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Apply the net/sched sfq fix so sfq_change()/init clamps q->quantum to the range [256, 1 << 20]. This prevents signed overflow/signed-bit wrap where INT_MIN toggles with psched_mtu() into 0, which otherwise can cause a soft lockup spin in sfq_dequeue().

    Linux kernel net/sched sfq q->quantum (quantum) clamping = Clamp the quantum to [256, 1 << 20]

Event History

Sep 17, 2026
CVE Published
via MITRE·04:05 PM
Data Sourced
via MITRE·04:05 PM
Description

Frequently Asked Questions

1

Who can trigger the soft lockup?

An attacker needs CAP_NET_ADMIN in a user namespace and must be able to configure a device with an exceptionally large MTU. The example uses a dummy device with max_mtu set to 0 that accepts an MTU of 2147483634.

2

Is normal SFQ configuration through its change path affected?

The exposed path is SFQ initialization. The SFQ change path already rejects a negative quantum, so the issue is limited to initialization when psched_mtu() returns zero or a value that enters the sign bit.

3

What condition causes the lockup?

The device MTU plus hard-header length must make psched_mtu() wrap to zero or into the sign bit. This can set the SFQ quantum to zero or 0x80000000, causing sfq_dequeue() to spin under the qdisc lock.

4

What does the fix change?

The fix clamps the SFQ quantum to the range 256 through 1 << 20 during initialization. This prevents the refill loop from repeatedly toggling or remaining at invalid allotment values.

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