CVE-2025-38684
📋 TL;DR
A NULL pointer dereference vulnerability in the Linux kernel's Enhanced Transmission Selection (ETS) queuing discipline allows local attackers to cause a kernel panic and system crash. This affects systems using the sch_ets module for traffic shaping, primarily Linux servers and network appliances. The vulnerability requires local access to trigger via specific tc command operations.
💻 Affected Systems
- Linux kernel
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Local denial of service causing kernel panic and system crash, potentially leading to service disruption and data loss if unsaved data is in memory.
Likely Case
Local denial of service causing system instability or crash when specific tc commands are executed on systems with ETS queuing configured.
If Mitigated
Minimal impact if proper access controls prevent unauthorized local users from executing tc commands or if ETS queuing is not in use.
🎯 Exploit Status
Requires local access and knowledge of specific tc command sequences to trigger the NULL pointer dereference. The crash report shows the exact call path through ets_class_qlen_notify().
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions with commit 5b3b346bc4c2aa2c428735438a11989d251f32f1 or later
Vendor Advisory: https://git.kernel.org/stable/c/5b3b346bc4c2aa2c428735438a11989d251f32f1
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing the fix commit 2. Reboot system to load new kernel 3. Verify sch_ets module loads without issues
🔧 Temporary Workarounds
Disable ETS queuing
allRemove or disable Enhanced Transmission Selection queuing configurations to prevent triggering the vulnerability
# Remove ETS qdisc configurations
tc qdisc del dev <interface> root
# Unload sch_ets module if not needed
rmmod sch_ets
Restrict tc command access
allLimit which users can execute traffic control commands to prevent exploitation
# Set permissions on tc binary
chmod 750 /sbin/tc
# Use sudoers to restrict access
echo '%networkadmin ALL=(ALL) NOPASSWD: /sbin/tc' > /etc/sudoers.d/tc-restrict
🧯 If You Can't Patch
- Ensure only trusted users have local access to systems
- Monitor for crash reports related to ets_class_qlen_notify or kernel NULL pointer dereferences
🔍 How to Verify
Check if Vulnerable:
Check if sch_ets module is loaded and kernel version is before the fix: lsmod | grep sch_ets && uname -r
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version includes fix commit: grep -q '5b3b346bc4c2aa2c428735438a11989d251f32f1' /boot/config-$(uname -r) 2>/dev/null && echo 'Fixed' || echo 'Check kernel source'
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages mentioning ets_class_qlen_notify
- NULL pointer dereference errors in kernel logs
- System crash reports with sch_ets in call stack
Network Indicators:
- Unusual tc command execution patterns
- Sudden network interface reconfiguration
SIEM Query:
source="kernel" AND ("NULL pointer dereference" OR "ets_class_qlen_notify" OR "sch_ets")
🔗 References
- https://git.kernel.org/stable/c/5b3b346bc4c2aa2c428735438a11989d251f32f1
- https://git.kernel.org/stable/c/84a24fb446ee07b22b64aae6f0e3f4a38266310a
- https://git.kernel.org/stable/c/87c6efc5ce9c126ae4a781bc04504b83780e3650
- https://git.kernel.org/stable/c/970c1c731c4ede46d05f5b0355724d1e400cfbca
- https://git.kernel.org/stable/c/97ec167cd2e8a81a2d87331a2ed92daf007542c8
- https://git.kernel.org/stable/c/bdfddcde86e8b9245d9c0c2efe2b6fe8dcf6bf41
- https://git.kernel.org/stable/c/be9692dafdfb36d9c43afd9d4e1d9d9ba8e7b51b
- https://git.kernel.org/stable/c/d69f4a258cd91b3bcef7089eb0401005aae2aed5
- https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html
- https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html