CVE-2024-57996

Published Feb 27, 2025

Last updated 6 months ago

Overview

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.
Source
416baaa9-dc9f-4396-8d5f-8c081fb06d67
NVD status
Modified
Products
linux_kernel

Risk scores

CVSS 3.1

Type
Primary
Base score
5.5
Impact score
3.6
Exploitability score
1.8
Vector string
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Severity
MEDIUM

Weaknesses

nvd@nist.gov
CWE-129

Social media

Hype score
Not currently trending
  1. 🚨 CVE-2024-57996 (CVSS 8.5) lets attackers crash Linux networks via packet limits. Patch NOW if using: ✅ SUSE SLE 15 SP3 ✅ SAP systems ✅ HPC clusters Read more: 👉 https://t.co/PX7pmtyXeu #InfoSec https://t.co/V2bDHjaphz

    @Cezar_H_Linux

    17 Jun 2025

    34 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  2. 🔐 CVE-2024-57996 (CVSS 8.5) in Linux Kernel? Patch IMMEDIATELY with SUSE’s Live Patch 29. Details: 👉 https://t.co/xFB3HYRVHS #LinuxSecurity #SysAdmin https://t.co/1EI0QaZHzC

    @Cezar_H_Linux

    16 Jun 2025

    47 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  3. 🚨 Critical #LinuxKernel patches released! CVE-2025-21680, CVE-2024-58013, and CVE-2024-57996 (CVSS 7.0-8.5) patched in SUSE’s latest update. Don’t delay—secure your systems today! Read more: 📷 https://t.co/nh4d6o4Mo9 #CyberSecuirty https:

    @Cezar_H_Linux

    16 Jun 2025

    52 Impressions

    1 Retweet

    2 Likes

    1 Bookmark

    0 Replies

    0 Quotes

  4. 1/3 🚨 Breaking: #SUSE patches 4 high-severity Linux Kernel vulnerabilities (CVE-2025-21680, CVE-2024-57996) in SLE 15 SP6. CVSS scores up to 8.5! Read more: 👉https://t.co/2cbKTboLGN #LinuxSecurity #DevOps https://t.co/WzP0SeM11Y

    @Cezar_H_Linux

    14 Jun 2025

    51 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  5. 🚨 Breaking: Linux Kernel Patch Alert! SUSE’s Live Patch 33 fixes: CVE-2022-49080 (Privilege escalation) CVE-2024-57996 (Network DoS) CVSS: Up to 8.5 – Patch now: Read more:👉 https://t.co/HAQtgaoOIk #Infosec #Linux https://t.co/E1l35IvqFw

    @Cezar_H_Linux

    14 Jun 2025

    49 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  6. 🚨 CVE-2024-57996 (CVSS 8.5) allows local privilege escalation in Linux Kernel 5.14.21. Patch immediately: zypper in -t patch SUSE-2025-1929=1 Read more: 👉 https://t.co/svFKzJpC87 #InfoSec #SUSE https://t.co/IQFhknRwno

    @Cezar_H_Linux

    13 Jun 2025

    50 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  7. CVE-2024-57996 (CVSS 8.5) lets attackers crash Linux networks. SUSE’s patch is out—deploy via zypper patch. Details:👉 https://t.co/0Zmh8Fq5tY #LinuxSecurity #SysAdmin https://t.co/7DkGgEchxK

    @Cezar_H_Linux

    13 Jun 2025

    36 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  8. 📢 Critical Linux kernel update alert! SUSE’s latest live patch addresses memory leaks (CVE-2022-49080) and network scheduling flaws (CVE-2024-57996). Enterprise users: prioritize this. Read more: 👇 https://t.co/PBpluwri4t #LinuxSecurity #SysAdmin #SUSE https://t.co/rAww

    @Cezar_H_Linux

    13 Jun 2025

    64 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  9. 🚨 SUSE Kernel Patch Alert: Live Patch 36 fixes: CVE-2022-49080 (7.3 CVSS) CVE-2024-57996 (8.5 CVSS) Patch via zypper or YaST. Details: 👉 https://t.co/4iHSRM0XU1 #LinuxSecurity #SysAdmin https://t.co/3aPKUYHjUg

    @Cezar_H_Linux

    13 Jun 2025

    40 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  10. 📢Breaking down #SUSE’s critical kernel patches (5.3.18-150300_59_179): CVE-2022-49080: Memory policy leak → privilege escalation risk CVE-2024-57996: SFQ scheduler flaw → DoS vector Read more: : 👉https://t.co/F68OheehdX #LinuxSecurity" https://t.co/8svmEjGLWX

    @Cezar_H_Linux

    11 Jun 2025

    65 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  11. 📢 GÜVENLİK DUYURUSU – SUSE Linux Enterprise 15 SP6 Kernel Canlı Yaması (CVE-2024-57996) SUSE, Linux Enterprise 15 SP6 sistemleri için yayımladığı canlı kernel güncellemesi ile “net_sched” modülünde tespit edilen ve potansiyel olarak ayrıcalık yükseltmeye

    @GMDestekMerkezi

    10 Jun 2025

    57 Impressions

    1 Retweet

    3 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

Configurations