Back

HIGH

net/sched: sch_multiq: Replace direct dequeue call with peek and qdisc_dequeue_peeked

Published Aug 15, 2026

Description

multiq_dequeue() takes a packet from a band's child with a direct ->dequeue() call after multiq_peek() peeked it. When the child is non-work-conserving the peek stashes the skb in the child's gso_skb, so the direct dequeue returns a different skb and orphans the stash, desyncing the child's qlen/backlog. With a qfq child reached through a peeking parent (e.g. tbf) this re-enters the child on an emptied list and dereferences NULL, panicking the kernel from softirq on ordinary egress.

Take the packet through qdisc_dequeue_peeked(), as sch_prio already does and as sch_red and sch_sfb were just fixed to do. The helper is a no-op when the child has no stash, so a work-conserving child is unaffected.

Affected products

Remediation

No remediation recorded yet.

References (14)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner Linux
Published Aug 15, 2026
Updated Aug 17, 2026
Reserved Aug 9, 2026
NVD
Status Received
Modified Aug 17, 2026
Red Hat
Severity Moderate
Public date Aug 15, 2026
ENISA EUVD
Assigner Linux
Published Aug 15, 2026
Updated Aug 17, 2026
Exploited since n/a
EUVD-2026-58994