Cloudanix VulnDB

CVE-2025-37992

None

CVSS

—

EPSS

0.2%

Published

May 26, 2025

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in how the Linux kernel manages certain network traffic queues could cause systems to crash when administrators lower queue size limits.

Exploitation
Local Privilege
Attacker needs
High Privilege
Complexity
Moderate
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Incomplete queue trimming in qdisc ->change() leaves packets in the gso_skb list, causing a NULL pointer dereference when sch->limit is compared only against sch->q.qlen during subsequent operations.

Why it matters to the business

Linux-based network appliances or cloud instances may experience kernel crashes or traffic processing failures when qdisc limits are dynamically reduced, potentially disrupting connectivity or requiring reboots.

How an attack unfolds

An attacker with local access or the ability to influence qdisc configuration triggers a limit reduction via netlink while packets reside in the gso_skb list; the missing flush in the updated qdiscs allows the dereference on next dequeue or check, leading to a crash or memory corruption that could be chained for privilege escalation in kernel contexts.

How to fix it

Upgrade linux-aws-5.15 packages on Ubuntu 20.04 LTS to version 5.15.0-1073.79~20.04.1 or later; rebuild and redeploy any custom kernels or modules that implement affected qdiscs (codel, fq, fq_codel, fq_pie, hhf, pie) to incorporate the qdisc_dequeue_internal helper.

How to confirm the fix worked

Confirm package version is at or above the fixed release, then exercise qdisc change operations that reduce limits while monitoring for kernel oops or NULL dereference panics; review qdisc source for presence of the new helper in ->change routines.

Typical attack path

  1. Obtain local or network-adjacent access to influence traffic shaping configuration
  2. Issue qdisc change operation that reduces the configured limit
  3. Ensure gso_skb list contains pending packets at the time of the change
  4. Trigger subsequent queue operations that perform the sch->limit vs sch->q.qlen check
  5. Exploit resulting NULL dereference for denial of service or escalation

How to detect it

Search kernel logs and audit trails for NULL pointer dereference panics or oops messages referencing qdisc, sch->limit, or gso_skb during qdisc change operations; correlate with netlink configuration events that alter qdisc limits.

What your security team should do

  • Prioritize upgrade of all linux-aws-5.15 instances to 5.15.0-1073.79~20.04.1 within standard maintenance windows given low EPSS and no KEV listing
  • Audit custom or third-party qdisc implementations for similar incomplete flushing logic
  • Monitor kernel logs for qdisc-related NULL pointer dereference events as a temporary detection measure

The record

In the Linux kernel, the following vulnerability has been resolved: net_sched: Flush gso_skb list too during ->change() Previously, when reducing a qdisc's limit via the ->change() operation, only the main skb queue was trimmed, potentially leaving packets in the gso_skb list. This could result in NULL pointer dereference when we only check sch->limit against sch->q.qlen. This patch introduces a new helper, qdisc_dequeue_internal(), which ensures both the gso_skb list and the main queue are properly flushed when trimming excess packets. All relevant qdiscs (codel, fq, fq_codel, fq_pie, hhf, pie) are updated to use this helper in their ->change() routines.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.140-1~deb11u1
Debian:12 linux 0 6.1.140-1
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.30-1
Debian:14 linux 0 6.12.30-1
Linux Kernel 3.5.0 5.10.238
Mageia:9 dwarves 0 1.30-1.mga9
Mageia:9 kernel 0 6.6.93-1.mga9
Mageia:9 kernel-firmware 0 20250509-1.mga9
Mageia:9 kernel-firmware-nonfree 0 20250509-1.mga9.nonfree
Mageia:9 kernel-linus 0 6.6.93-1.mga9
Mageia:9 kmod-virtualbox 0 7.1.8-3.mga9
Mageia:9 kmod-xtables-addons 0 3.24-80.mga9
Mageia:9 libtraceevent 0 1.8.4-1.mga9
Mageia:9 libtracefs 0 1.8.2-1.mga9
Mageia:9 radeon-firmware 0 20250509-1.mga9.nonfree
Mageia:9 wireless-regdb 0 20250220-1.mga9
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_13 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_13 0 1-150600.13.6.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.60.5.150600.12.26.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.60.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.60.3
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.60.4
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.43.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.60.5
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.44.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.60.5
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.60.5.150600.12.26.4
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.60.3
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.60.2
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.60.4
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.43.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.44.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.60.4

Related vulnerabilities