CVE-2025-21647 Overview
CVE-2025-21647 is an Out-of-Bounds Read vulnerability in the Linux kernel's sch_cake (CAKE - Common Applications Kept Enhanced) traffic scheduler module. The vulnerability exists in the host bulk flow fairness counting mechanism, where an integer underflow of the per-host bulk flow counters can lead to out-of-bounds memory access. This flaw was discovered through syzbot fuzzing despite a previous logic error fix.
Critical Impact
A local attacker with low privileges can exploit this vulnerability to read sensitive kernel memory or cause a denial of service, potentially leading to system instability or information disclosure.
Affected Products
- Linux Kernel versions prior to patched releases
- Linux Kernel 6.11 (including RC7)
- Linux Kernel 6.13 RC1 through RC6
Discovery Timeline
- 2025-01-19 - CVE-2025-21647 published to NVD
- 2025-11-03 - Last updated in NVD database
Technical Details for CVE-2025-21647
Vulnerability Analysis
The vulnerability resides in the CAKE qdisc (queueing discipline) implementation, specifically in the handling of per-host bulk flow counters used for flow fairness calculations. The sch_cake module is designed to provide improved queue management for network traffic, implementing a sophisticated flow queuing algorithm with per-host isolation capabilities.
The root issue is an integer underflow condition in the bulk flow counter management. When decrementing these counters under certain race conditions or edge cases identified by syzbot, the counter can wrap around to a large positive value, causing subsequent array indexing operations to access memory outside the intended buffer boundaries. This results in CWE-125 (Out-of-bounds Read) behavior.
Root Cause
The vulnerability stems from insufficient bounds checking on the per-host bulk flow counters before performing decrement operations. The original code scattered conditional checks for flow mode throughout multiple code paths, making it difficult to ensure consistent validation. Logic errors in these scattered checks allowed syzbot to trigger scenarios where counters could underflow, despite a previous fix attempting to address related issues.
The fix introduces dedicated helper functions that centralize all access to the per-host bulk flow counters, performing bounds checking before any increment or decrement operations. This architectural improvement not only fixes the immediate vulnerability but also improves code maintainability by consolidating the flow mode conditional checks into single locations.
Attack Vector
This is a local attack vector requiring a user to have low-level privileges on the affected system. An attacker could craft specific network traffic patterns or manipulate the CAKE qdisc configuration to trigger the underflow condition. The attack does not require user interaction and can affect confidentiality (through information disclosure from kernel memory reads) and availability (through potential system crashes).
The vulnerability is exploitable in environments where:
- The CAKE qdisc module is loaded and in use for traffic shaping
- Host bulk flow fairness mode is enabled
- An attacker can influence network traffic flow patterns or qdisc configuration
Detection Methods for CVE-2025-21647
Indicators of Compromise
- Unexpected kernel crashes or panics related to sch_cake module operations
- Kernel log entries indicating out-of-bounds memory access in network scheduling code
- Unusual behavior in CAKE traffic shaping functionality
- System instability when processing high volumes of network flows
Detection Strategies
- Monitor kernel logs for KASAN (Kernel Address Sanitizer) reports related to sch_cake or cake_ prefixed functions
- Deploy kernel memory debugging tools to detect out-of-bounds read attempts in the network scheduler subsystem
- Use system call auditing to monitor for unusual network qdisc configuration changes
- Implement host-based intrusion detection rules for abnormal kernel memory access patterns
Monitoring Recommendations
- Enable KASAN in development and staging environments to catch memory access violations early
- Configure syslog monitoring for kernel oops or panic messages referencing net/sched/sch_cake.c
- Monitor for suspicious processes attempting to manipulate traffic control configurations
- Implement network flow analysis to detect unusual traffic patterns that might indicate exploitation attempts
How to Mitigate CVE-2025-21647
Immediate Actions Required
- Update the Linux kernel to the latest patched version for your distribution
- If immediate patching is not possible, consider temporarily disabling the CAKE qdisc module if not critical for operations
- Review and restrict access to traffic control (tc) utilities to authorized administrators only
- Monitor systems for signs of exploitation while preparing patch deployment
Patch Information
The Linux kernel development team has released patches that introduce bounds-checking helper functions for all accesses to per-host bulk flow counters. The fix consolidates the flow quantum calculation into a helper function and ensures proper validation before any counter modifications.
Patches are available through the following kernel commits:
- Kernel Commit c/27202e2e
- Kernel Commit c/44fe1efb
- Kernel Commit c/737d4d9
- Kernel Commit c/91bb189
- Kernel Commit c/a777e06
- Kernel Commit c/b1a1743
- Kernel Commit c/bb0245f
Debian users should refer to the Debian LTS Announcement - March 2025 and Debian LTS Announcement - May 2025 for distribution-specific updates.
Workarounds
- Temporarily unload the sch_cake kernel module if not required: modprobe -r sch_cake
- Switch to alternative traffic shaping qdiscs such as fq_codel until patching is complete
- Restrict unprivileged user access to network namespace creation capabilities
- Implement network segmentation to limit potential impact from compromised systems
# Temporarily disable CAKE qdisc module
sudo modprobe -r sch_cake
# Verify module is unloaded
lsmod | grep cake
# Block automatic loading (until patched)
echo "blacklist sch_cake" | sudo tee /etc/modprobe.d/blacklist-sch_cake.conf
# If using CAKE, switch to fq_codel as temporary alternative
sudo tc qdisc replace dev eth0 root fq_codel
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


