CVE-2024-47678 in Linuxinfo

Summary

by MITRE • 10/21/2024

In the Linux kernel, the following vulnerability has been resolved:

icmp: change the order of rate limits

ICMP messages are ratelimited :

After the blamed commits, the two rate limiters are applied in this order:

1) host wide ratelimit (icmp_global_allow())

2) Per destination ratelimit (inetpeer based)

In order to avoid side-channels attacks, we need to apply the per destination check first.

This patch makes the following change :

1) icmp_global_allow() checks if the host wide limit is reached. But credits are not yet consumed. This is deferred to 3)

2) The per destination limit is checked/updated. This might add a new node in inetpeer tree.

3) icmp_global_consume() consumes tokens if prior operations succeeded.

This means that host wide ratelimit is still effective in keeping inetpeer tree small even under DDOS.

As a bonus, I removed icmp_global.lock as the fast path can use a lock-free operation.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 01/19/2026

The vulnerability described in CVE-2024-47678 represents a critical flaw in the Linux kernel's ICMP rate limiting mechanism that could potentially enable side-channel attacks. This issue affects the ordering of rate limit checks within the kernel's network stack implementation, specifically impacting how ICMP messages are processed and limited across the system. The vulnerability arises from the sequence in which two distinct rate limiting mechanisms are applied during ICMP message handling, creating potential information leakage pathways that could be exploited by malicious actors to infer system state or network characteristics through timing variations and resource consumption patterns.

The technical implementation of this vulnerability stems from the incorrect ordering of rate limiting operations within the ICMP processing pipeline. Prior to the fix, the kernel applied rate limiting in the following sequence: first checking the host-wide rate limit using icmp_global_allow(), then applying per-destination rate limiting based on inetpeer structures. This ordering creates a vulnerability where an attacker could potentially observe timing differences or resource allocation patterns that reveal information about the system's current network state and connection handling. The vulnerability specifically relates to the inetpeer tree management and how it interacts with the global rate limiting mechanism, creating a scenario where the per-destination checks occur after the host-wide limit has already been evaluated but before the actual resource consumption is properly accounted for.

The operational impact of this vulnerability extends beyond simple rate limiting behavior to encompass potential security implications through side-channel attacks. Attackers could exploit the timing variations in rate limiting operations to perform network reconnaissance or infer information about the target system's network connections and resource utilization patterns. This represents a significant concern for systems that handle high volumes of ICMP traffic or are subject to denial-of-service attacks, as the vulnerability could be leveraged to create covert information channels or to better understand system behavior under stress conditions. The vulnerability also impacts the efficiency of network resource management, potentially allowing attackers to consume system resources more effectively than intended through strategic timing of ICMP message generation.

The fix implemented addresses this vulnerability by reordering the rate limiting operations to ensure that per-destination checks occur before host-wide rate limiting is applied. This change ensures that the inetpeer tree management operations are completed and updated before the global rate limiting tokens are consumed, eliminating the potential side-channel information leakage. The solution maintains the effectiveness of host-wide rate limiting for controlling the growth of the inetpeer tree and preventing resource exhaustion during distributed denial-of-service attacks while ensuring that per-destination rate limiting operates correctly. Additionally, the patch removes the icmp_global.lock mechanism, replacing it with lock-free operations for the fast path, which improves performance while maintaining security guarantees. This approach aligns with security best practices and follows the principle of least privilege by ensuring that rate limiting operations do not expose system state information through timing variations.

This vulnerability classification aligns with CWE-200 (Information Exposure) and CWE-307 (Improper Restriction of Excessive Authentication Attempts) as it exposes system state information through rate limiting timing variations. The fix demonstrates proper security engineering principles by addressing the root cause of the side-channel vulnerability rather than merely mitigating its symptoms. From an ATT&CK perspective, this vulnerability relates to T1592 (Gather Victim Host Information) and T1499 (Endpoint Denial of Service) as it could enable both reconnaissance activities and resource exhaustion attacks. The implementation follows security standards that emphasize the importance of proper ordering in security-critical operations and the elimination of information leakage pathways in network protocol implementations. The solution maintains the kernel's ability to effectively prevent denial-of-service attacks while ensuring that the rate limiting mechanisms do not inadvertently create security weaknesses through improper implementation of access control checks.

Responsible

Linux

Reservation

09/30/2024

Disclosure

10/21/2024

Moderation

accepted

CPE

ready

EPSS

0.00239

KEV

no

Activities

very low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!