Vulnerability · Published Feb 27, 2025 · Assigned by Linux

CVE-2024-57996net_sched: sch_sfq: don't allow 1 packet limit

High 7.8

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 20% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.8High
Exploit odds (30 days)0.3%top 80.2% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: net_sched: sch_sfq: don't allow 1 packet limit The current implementation does not work correctly with a limit of 1. iproute2 actually checks for this and this patch adds the check in kernel as well. This fixes the following syzkaller reported crash: UBSAN: array-index-out-of-bounds in net/sched/sch_sfq.c:210:6 index 65535 is out of range for type 'struct sfq_head[128]' CPU: 0 PID: 2569 Comm: syz-executor101 Not tainted 5.10.0-smp-DEV #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace: __dump_stack lib/dump_stack.c:79 [inline] dump_stack+0x125/0x19f lib/dump_stack.c:120 ubsan_epilogue lib/ubsan.c:148 [inline] __ubsan_handle_out_of_bounds+0xed/0x120 lib/ubsan.c:347 sfq_link net/sched/sch_sfq.c:210 [inline] sfq_dec+0x528/0x600 net/sched/sch_sfq.c:238 sfq_dequeue+0x39b/0x9d0 net/sched/sch_sfq.c:500 sfq_reset+0x13/0x50 net/sched/sch_sfq.c:525 qdisc_reset+0xfe/0x510 net/sched/sch_generic.c:1026 tbf_reset+0x3d/0x100 net/sched/sch_tbf.c:319 qdisc_reset+0xfe/0x510 net/sched/sch_generic.c:1026 dev_reset_queue+0x8c/0x140 net/sched/sch_generic.c:1296 netdev_for_each_tx_queue include/linux/netdevice.h:2350 [inline] dev_deactivate_many+0x6dc/0xc20 net/sched/sch_generic.c:1362 __dev_close_many+0x214/0x350 net/core/dev.c:1468 dev_close_many+0x207/0x510 net/core/dev.c:1506 unregister_netdevice_many+0x40f/0x16b0 net/core/dev.c:10738 unregister_netdevice_queue+0x2be/0x310 net/core/dev.c:10695 unregister_netdevice include/linux/netdevice.h:2893 [inline] __tun_detach+0x6b6/0x1600 drivers/net/tun.c:689 tun_detach drivers/net/tun.c:705 [inline] tun_chr_close+0x104/0x1b0 drivers/net/tun.c:3640 __fput+0x203/0x840 fs/file_table.c:280 task_work_run+0x129/0x1b0 kernel/task_work.c:185 exit_task_work include/linux/task_work.h:33 [inline] do_exit+0x5ce/0x2200 kernel/exit.c:931 do_group_exit+0x144/0x310 kernel/exit.c:1046 __do_sys_exit_group kernel/exit.c:1057 [inline] __se_sys_exit_group kernel/exit.c:1055 [inline] __x64_sys_exit_group+0x3b/0x40 kernel/exit.c:1055 do_syscall_64+0x6c/0xd0 entry_SYSCALL_64_after_hwframe+0x61/0xcb RIP: 0033:0x7fe5e7b52479 Code: Unable to access opcode bytes at RIP 0x7fe5e7b5244f. RSP: 002b:00007ffd3c800398 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe5e7b52479 RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000000 RBP: 00007fe5e7bcd2d0 R08: ffffffffffffffb8 R09: 0000000000000014 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe5e7bcd2d0 R13: 0000000000000000 R14: 00007fe5e7bcdd20 R15: 00007fe5e7b24270 The crash can be also be reproduced with the following (with a tc recompiled to allow for sfq limits of 1): tc qdisc add dev dummy0 handle 1: root tbf rate 1Kbit burst 100b lat 1s ../iproute2-6.9.0/tc/tc qdisc add dev dummy0 handle 2: parent 1:10 sfq limit 1 ifconfig dummy0 up ping -I dummy0 -f -c2 -W0.1 8.8.8.8 sleep 1 Scenario that triggers the crash: * the first packet is sent and queued in TBF and SFQ; qdisc qlen is 1 * TBF dequeues: it peeks from SFQ which moves the packet to the gso_skb list and keeps qdisc qlen set to 1. TBF is out of tokens so it schedules itself for later. * the second packet is sent and TBF tries to queues it to SFQ. qdisc qlen is now 2 and because the SFQ limit is 1 the packet is dropped by SFQ. At this point qlen is 1, and all of the SFQ slots are empty, however q->tail is not NULL. At this point, assuming no more packets are queued, when sch_dequeue runs again it will decrement the qlen for the current empty slot causing an underflow and the subsequent out of bounds access.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12linux6.1.129-1DEBIAN-CVE-2024-57996
Debian:13linux6.12.13-1DEBIAN-CVE-2024-57996
Debian:14linux6.12.13-1DEBIAN-CVE-2024-57996
Ubuntu:22.04:LTSlinux5.15.0-153.163UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux5.15.0-153.163USN-7726-1
Ubuntu:24.04:LTSlinux6.8.0-79.79USN-7725-1
Ubuntu:24.04:LTSlinux6.8.0-64.67USN-7651-1
Ubuntu:24.04:LTSlinux6.8.0-79.79UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-aws5.15.0-1091.98USN-7726-1
Ubuntu:22.04:LTSlinux-aws5.15.0-1091.98UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-aws6.8.0-1032.34USN-7651-1
Ubuntu:24.04:LTSlinux-aws6.8.0-1036.38UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-aws6.8.0-1036.38USN-7725-1
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1036.38~22.04.1USN-7725-1
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1032.34~22.04.1USN-7651-3
Ubuntu:22.04:LTSlinux-aws-6.86.8.0-1036.38~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure5.15.0-1095.104USN-7726-5
Ubuntu:22.04:LTSlinux-azure5.15.0-1095.104UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-azure6.8.0-1038.44UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-azure6.8.0-1038.44USN-7802-1
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-azure-6.116.11.0-1015.15~24.04.1USN-7521-1
Ubuntu:24.04:LTSlinux-azure-6.116.11.0-1015.15~24.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1036.42~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-6.86.8.0-1036.42~22.04.1USN-7802-1
Ubuntu:22.04:LTSlinux-azure-fde5.15.0-1095.104.1UBUNTU-CVE-2024-57996
Ubuntu:25.10linux-azure-fdeno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-azure-nvidia6.8.0-1025.27UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-azure-nvidia6.8.0-1025.27USN-7809-1
Ubuntu:22.04:LTSlinux-gcp5.15.0-1091.100USN-7726-1
Ubuntu:22.04:LTSlinux-gcp5.15.0-1091.100UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-gcp6.8.0-1037.39USN-7725-1
Ubuntu:24.04:LTSlinux-gcp6.8.0-1033.35USN-7651-4
Ubuntu:24.04:LTSlinux-gcp6.8.0-1037.39UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-gcp-6.116.11.0-1015.15~24.04.1USN-7521-1
Ubuntu:24.04:LTSlinux-gcp-6.116.11.0-1015.15~24.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1033.35~22.04.1USN-7651-4
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1037.39~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gcp-6.86.8.0-1037.39~22.04.1USN-7725-3
Ubuntu:22.04:LTSlinux-gke5.15.0-1088.94USN-7726-4
Ubuntu:22.04:LTSlinux-gke5.15.0-1088.94UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-gke6.8.0-1033.37USN-7725-3
Ubuntu:24.04:LTSlinux-gke6.8.0-1033.37UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-gke6.8.0-1028.32USN-7651-3
Ubuntu:22.04:LTSlinux-gkeop5.15.0-1074.82UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-gkeop5.15.0-1074.82USN-7726-1
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1020.22USN-7725-3
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1015.17USN-7651-3
Ubuntu:24.04:LTSlinux-gkeop6.8.0-1020.22UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-hwe-6.116.11.0-26.26~24.04.1USN-7521-1
Ubuntu:24.04:LTSlinux-hwe-6.116.11.0-26.26~24.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-79.79~22.04.1USN-7725-3
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-79.79~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-hwe-6.86.8.0-64.67~22.04.1USN-7653-1
Ubuntu:22.04:LTSlinux-ibm5.15.0-1085.88UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-ibm5.15.0-1085.88USN-7726-1
Ubuntu:24.04:LTSlinux-ibm6.8.0-1037.37USN-7779-1
Ubuntu:24.04:LTSlinux-ibm6.8.0-1036.36UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-ibm6.8.0-1029.29USN-7651-2
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1036.36~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1029.29~22.04.1USN-7651-2
Ubuntu:22.04:LTSlinux-ibm-6.86.8.0-1037.37~22.04.1USN-7779-1
Ubuntu:24.04:LTSlinux-intelno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-intel-iotg5.15.0-1086.92UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-intel-iotg5.15.0-1086.92USN-7726-1
Ubuntu:22.04:LTSlinux-kvm5.15.0-1087.92UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-kvm5.15.0-1087.92USN-7726-4
Ubuntu:22.04:LTSlinux-lowlatency5.15.0-153.163USN-7726-1
Ubuntu:22.04:LTSlinux-lowlatency5.15.0-153.163UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-64.67.1USN-7651-2
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-79.79.1USN-7725-1
Ubuntu:24.04:LTSlinux-lowlatency6.8.0-79.79.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.116.11.0-1014.15~24.04.1UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.116.11.0-1014.15~24.04.1USN-7521-3
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-64.67.1~22.04.1USN-7651-2
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-79.79.1~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.86.8.0-79.79.1~22.04.1USN-7725-1
Ubuntu:22.04:LTSlinux-nvidia5.15.0-1086.87USN-7726-1
Ubuntu:22.04:LTSlinux-nvidia5.15.0-1086.87UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1036.39UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1031.34USN-7651-3
Ubuntu:24.04:LTSlinux-nvidia6.8.0-1036.39USN-7725-3
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1036.39~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1031.34~22.04.1USN-7651-3
Ubuntu:22.04:LTSlinux-nvidia-6.86.8.0-1036.39~22.04.1USN-7725-3
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1036.39.1USN-7725-3
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1036.39.1UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-nvidia-lowlatency6.8.0-1031.34.1USN-7651-3
Ubuntu:22.04:LTSlinux-nvidia-tegra5.15.0-1044.44UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-tegra5.15.0-1044.44USN-7726-1
Ubuntu:24.04:LTSlinux-nvidia-tegra6.8.0-1010.10UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-nvidia-tegra-igx5.15.0-1033.33USN-7726-1
Ubuntu:22.04:LTSlinux-nvidia-tegra-igx5.15.0-1033.33UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-oem-6.116.11.0-1022.22USN-7521-1
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-oem-6.86.8.0-1031.31USN-7651-1
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oracle5.15.0-1089.95USN-7726-1
Ubuntu:22.04:LTSlinux-oracle5.15.0-1089.95UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-oracle6.8.0-1033.34USN-7725-1
Ubuntu:24.04:LTSlinux-oracle6.8.0-1029.30USN-7651-3
Ubuntu:24.04:LTSlinux-oracle6.8.0-1033.34UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1029.30~22.04.1USN-7651-3
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1033.34~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-oracle-6.86.8.0-1033.34~22.04.1USN-7725-1
Ubuntu:22.04:LTSlinux-raspi5.15.0-1085.88USN-7726-1
Ubuntu:22.04:LTSlinux-raspi5.15.0-1085.88UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-raspi6.8.0-1036.40USN-7725-3
Ubuntu:24.04:LTSlinux-raspi6.8.0-1031.35USN-7651-6
Ubuntu:24.04:LTSlinux-raspi6.8.0-1036.40UBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-riscv-6.86.8.0-79.79~22.04.1UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2024-57996
Ubuntu:24.04:LTSlinux-xilinx6.8.0-1018.19UBUNTU-CVE-2024-57996
Ubuntu:22.04:LTSlinux-xilinx-zynqmp5.15.0-1055.59USN-7726-1
Ubuntu:22.04:LTSlinux-xilinx-zynqmp5.15.0-1055.59UBUNTU-CVE-2024-57996

Affected products (as reported)

VendorProductVersions
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before e12f6013d0a69660e8b99bfe381b9546ae6673281da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 1e6d9d87626cf89eeffb4d943db12cb5b10bf9611da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 1b562b7f9231432da40d12e19786c1bd7df653a71da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 35d0137305ae2f97260a9047f445bd4434bd6cc71da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 833e9a1c27b82024db7ff5038a51651f48f05e5e1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 7d8947f2153ee9c5ab4cb17861a11cc45f30e8c41da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 7fefc294204f10a3405f175f4ac2be16d63f135e1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 – before 10685681bafce6febb39770f3387621bf5d67d0b
Linux Linux 2.6.12

References