CVE-2026-43496: net/sched: sch_red: Replace direct dequeue call with peek and qdisc_dequeue_peeked

Published May 21, 2026
·
Updated

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

net/sched: schred: Replace direct dequeue call with peek and qdiscdequeuepeeked

When red qdisc has children (eg qfq qdisc) whose peek() callback is qdiscpeekdequeued(), we could get a kernel panic. When the parent of such qdiscs (eg illustrated in patch #3 as tbf) wants to retrieve an skb from its child (red in this case), it will do the following: 1a. do a peek() - and when sensing there's an skb the child can offer, then - the child in this case(red) calls its child's (qfq) peek. qfq does the right thing and will return the gsoskb queue packet. Note: if there wasnt a gsoskb entry then qfq will store it there. 1b. invoke a dequeue() on the child (red). And herein lies the problem. - red will call the child's dequeue() which will essentially just try to grab something of qfq's queue.

[ 78.667668][ T363] KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f] [ 78.667927][ T363] CPU: 1 UID: 0 PID: 363 Comm: ping Not tainted 7.1.0-rc1-00033-g46f74a3f7d57-dirty #790 PREEMPT(full) [ 78.668263][ T363] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 78.668486][ T363] RIP: 0010:qfqdequeue+0x446/0xc90 [schqfq] [ 78.668718][ T363] Code: 54 c0 e8 dd 90 00 f1 48 c7 c7 e0 03 54 c0 48 89 de e8 ce 90 00 f1 48 8d 7b 48 b8 ff ff 37 00 48 89 fa 48 c1 e0 2a 48 c1 ea 03 <80> 3c 02 00 74 05 e8 ef a1 e1 f1 48 8b 7b 48 48 8d 54 24 58 48 8d [ 78.669312][ T363] RSP: 0018:ffff88810de573e0 EFLAGS: 00010216 [ 78.669533][ T363] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 [ 78.669790][ T363] RDX: 0000000000000009 RSI: 0000000000000004 RDI: 0000000000000048 [ 78.670044][ T363] RBP: ffff888110dc4000 R08: ffffffffb1b0885a R09: fffffbfff6ba9078 [ 78.670297][ T363] R10: 0000000000000003 R11: ffff888110e31c80 R12: 0000001880000000 [ 78.670560][ T363] R13: ffff888110dc4150 R14: ffff888110dc42b8 R15: 0000000000000200 [ 78.670814][ T363] FS: 00007f66a8f09c40(0000) GS:ffff888163428000(0000) knlGS:0000000000000000 [ 78.671110][ T363] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 78.671324][ T363] CR2: 000055db4c6a30a8 CR3: 000000010da67000 CR4: 0000000000750ef0 [ 78.671585][ T363] PKRU: 55555554 [ 78.671713][ T363] Call Trace: [ 78.671843][ T363] <TASK> [ 78.671936][ T363] ? pfxqfqdequeue+0x10/0x10 [schqfq] [ 78.672148][ T363] ? pfxprintk+0x10/0x10 [ 78.672322][ T363] ? srsoaliasreturnthunk+0x5/0xfbef5 [ 78.672496][ T363] ? lockdephardirqsonprepare+0xa8/0x1a0 [ 78.672706][ T363] ? srsoaliasreturnthunk+0x5/0xfbef5 [ 78.672875][ T363] ? tracehardirqson+0x19/0x1a0 [ 78.673047][ T363] reddequeue+0x65/0x270 [schred] [ 78.673217][ T363] ? srsoaliasreturnthunk+0x5/0xfbef5 [ 78.673385][ T363] tbfdequeue.cold+0xb0/0x70c [schtbf] [ 78.673566][ T363] qdiscrun+0x169/0x1900

The right thing to do in #1b is to grab the skb off gsoskb queue. This patchset fixes that issue by changing #1b to use qdiscdequeuepeeked() method instead.

Affected Software

11 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.139.1-1<6.6.141.1-1
6.6.141.1-1
Linux Linux kernel>=2.6.29<5.10.258
Linux Linux kernel>=5.11<5.15.209
Linux Linux kernel>=5.16<6.1.175
Linux Linux kernel>=6.2<6.6.140
Linux Linux kernel>=6.7<6.12.88
Linux Linux kernel>=6.13<6.18.30
Linux Linux kernel>=6.19<7.0.7
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

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

    Fixed in 6.6.141.1-1
  2. Upgrade

    Upgrade Linux kernel to a version that resolves this vulnerability.

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

Event History

May 21, 2026
CVE Published
via MITRE·12:12 PM
Data Sourced
via MITRE·12:12 PM
Description
Data Sourced
via NVD·01:16 PM
RemedyDescriptionSeverityWeaknessAffected Software
May 22, 2026
Data Sourced
via Microsoft·08:02 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·08:02 AM
Affected Software
Updated
via Microsoft·08:02 AM
DescriptionSeverity

Frequently Asked Questions

1

What is the severity of CVE-2026-43496?

CVE-2026-43496 has a risk rating of 48.

2

How do I fix CVE-2026-43496?

To fix CVE-2026-43496, upgrade to the latest patched version of the Linux kernel.

3

What components are impacted by CVE-2026-43496?

CVE-2026-43496 impacts the net/sched component of the Linux kernel.

4

What type of vulnerability is CVE-2026-43496?

CVE-2026-43496 is classified as a kernel panic vulnerability due to improper handling in the sch_red scheduler.

5

When was CVE-2026-43496 published?

CVE-2026-43496 was published on May 21, 2026.

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