CVE-2024-55605
Executive Summary
CVE-2024-55605 is a high-severity (CVSS 7.5) stack overflow vulnerability in Suricata, a widely used open-source Network Intrusion Detection System (NIDS), Intrusion Prevention System (IPS), and Network Security Monitoring engine. The flaw resides in multiple string transform functions, including to_lowercase, to_uppercase, strip_whitespace, compress_whitespace, dotprefix, header_lowercase, strip_pseudo_headers, url_decode, and xor. An attacker can trigger a stack overflow by sending a crafted network packet with an excessively large input buffer to any of these transforms, leading to a denial of service (DoS) via Suricata crash. The vulnerability affects all versions prior to 7.0.8. No public proof-of-concept (PoC) or exploit code is currently available, and the EPSS score is 0.0%, indicating low exploitation likelihood at this time. However, given Suricata's critical role in network security monitoring, immediate patching is recommended.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
Suricata is distributed as a compiled binary or source code package. The vulnerability is not in a package manager (NPM, PyPI, Go, Ruby) but in the core engine. Users should verify the integrity of their Suricata installation and ensure they are running version 7.0.8 or later. No supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Attack Vector (AV): Network – the vulnerability can be exploited remotely.
- Attack Complexity (AC): Low – no special conditions required.
- Privileges Required (PR): None – no authentication needed.
- User Interaction (UI): None – no user action required.
- Scope (S): Unchanged – the exploit does not affect other components.
- Confidentiality (C): None – no data disclosure.
- Integrity (I): None – no data modification.
- Availability (A): High – successful exploitation causes a crash, leading to denial of service.
Threat Level: High. While no active exploitation has been observed, the ease of exploitation (network-based, no auth) and the critical nature of Suricata in security monitoring make this a significant risk.
Deep Dive & Mechanics
The vulnerability is a classic stack-based buffer overflow (CWE-121) in Suricata's string transform functions. These functions are used to normalize or manipulate packet payloads and HTTP headers during analysis. When a transform function receives an input buffer larger than the allocated stack space, it writes beyond the buffer boundary, overwriting the return address and other stack data. This causes a segmentation fault and crashes the Suricata process.
The affected functions are:
to_lowercaseto_uppercasestrip_whitespacecompress_whitespacedotprefixheader_lowercasestrip_pseudo_headersurl_decodexor
An attacker can craft a network packet with an oversized payload in a field that triggers one of these transforms. For example, sending an HTTP request with an extremely long header value that is processed by header_lowercase could cause the overflow. The crash results in a denial of service, disrupting network monitoring and potentially allowing malicious traffic to go undetected.
Vulnerable vs. Patched Code
The vulnerable code likely uses a fixed-size stack buffer for the transformed output without proper bounds checking. For example:
Vulnerable (pseudo-code):
void to_lowercase(char *input) {
char output[1024]; // fixed stack buffer
int i;
for (i = 0; input[i] != '\0'; i++) {
output[i] = tolower(input[i]);
}
output[i] = '\0';
// use output...
}
Patched (pseudo-code):
void to_lowercase(char *input, size_t input_len) {
char *output = malloc(input_len + 1); // heap allocation
if (!output) return;
for (size_t i = 0; i < input_len; i++) {
output[i] = tolower(input[i]);
}
output[input_len] = '\0';
// use output...
free(output);
}
The patch in Suricata 7.0.8 likely replaces stack buffers with heap allocations or adds proper size checks to prevent overflow.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Since no public PoC exists, a red team can simulate the attack by crafting a malicious packet. Using tools like scapy or hping3, send a packet with an oversized payload to a Suricata-monitored interface. For example, using Python with scapy:
from scapy.all import *
import sys
# Craft a TCP packet with a large payload
payload = b"A" * 10000 # 10,000 bytes
packet = IP(dst="192.168.1.100")/TCP(dport=80)/Raw(load=payload)
send(packet, iface="eth0")
This may trigger the strip_whitespace or other transforms if Suricata processes the payload. Monitor Suricata logs for crashes.
Blue Team (Defense & Detection)
- Immediate Patching: Upgrade to Suricata 7.0.8 or later.
- Network Monitoring: Watch for unusually large packets or payloads that could trigger the overflow.
- Log Analysis: Monitor Suricata logs for crash events (e.g., segfaults, stack traces).
- Rate Limiting: Implement rate limiting on packet sizes to reduce the risk of oversized payloads.
- IDS/IPS Rules: Deploy custom Suricata rules to alert on oversized payloads (see Detection Engineering).
Indicators of Compromise (IOCs)
- Network IOCs:
- Packets with payloads exceeding 4096 bytes (typical stack buffer size) targeting Suricata-monitored ports.
- Repeated crash events in Suricata logs.
- System IOCs:
- Suricata process crashes (segfaults) with stack overflow in backtrace.
- Core dump files containing large stack frames.
- Log IOCs:
- Suricata log entries like
Fatal: signal 11 (SIGSEGV)orStack overflow in transform function.
- Suricata log entries like
Detection Engineering
YARA Rule
rule CVE_2024_55605_Suricata_Stack_Overflow {
meta:
description = "Detects potential stack overflow in Suricata transform functions"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-55605"
strings:
$s1 = "to_lowercase" nocase
$s2 = "to_uppercase" nocase
$s3 = "strip_whitespace" nocase
$s4 = "compress_whitespace" nocase
$s5 = "dotprefix" nocase
$s6 = "header_lowercase" nocase
$s7 = "strip_pseudo_headers" nocase
$s8 = "url_decode" nocase
$s9 = "xor" nocase
$overflow = "stack overflow" nocase
condition:
any of ($s*) and $overflow
}
Sigma Rule
title: Suricata Stack Overflow in Transform Functions
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects Suricata crash events related to CVE-2024-55605
logsource:
product: suricata
service: suricata
detection:
selection:
- EventID: 'SIGSEGV'
- Message|contains: 'stack overflow'
condition: selection
falsepositives:
- Legitimate large packets (rare)
level: high
Suricata Rule
alert tcp any any -> any any (msg:"CVE-2024-55605 - Potential Stack Overflow in Transform Functions"; content:"|41 41 41 41|"; offset:0; depth:10000; classtype:attempted-dos; sid:1000001; rev:1;)
Note: This rule alerts on packets with a large sequence of 'A' characters (0x41) as a generic indicator. Adjust based on actual exploit patterns.
Remediation & Mitigation
- Immediate Patch: Upgrade Suricata to version 7.0.8 or later. This is the only complete fix.
- Workaround: If patching is not possible, disable or restrict the use of the vulnerable transform functions in Suricata configuration. For example, avoid using
header_lowercaseorurl_decodein rules. - Network Segmentation: Isolate Suricata sensors from untrusted networks to reduce exposure.
- Monitoring: Enable detailed logging and alerting on Suricata crashes.
- Defense in Depth: Deploy additional IDS/IPS layers to compensate if Suricata is unavailable.
Valters IT
Securing Digital Frontiers