☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-55629

CVE-2024-55629 Security Advisory in Suricata
📅 PUBLISHED: 2025-01-06 18:04 UTC 🔄 UPDATED: 2026-10-02 19:31 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.54%
👁️
0.54% probability
13.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-55629 is a high-severity (CVSS 7.5) evasion vulnerability in Suricata, a widely used Network Intrusion Detection/Prevention System (NIDS/NIPS). The flaw resides in how Suricata processes TCP streams containing urgent data (out-of-band data). An attacker can craft TCP packets with the URG flag set and urgent pointer, causing Suricata to interpret the stream differently than the target application. This discrepancy allows an attacker to bypass detection rules and potentially deliver malicious payloads without triggering alerts. The vulnerability affects all Suricata versions prior to 7.0.8. The patch introduces configurable options to handle TCP urgent data, allowing administrators to drop, ignore, or process such packets. In IPS mode, a simple rule can drop all packets with the urgent flag set. No public exploit code or proof-of-concept is currently available, and the EPSS score is 0.0%, indicating low exploitation activity at this time.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Suricata is distributed as a standalone binary, via package managers (e.g., apt, yum), and as source code. Organizations using Suricata in their security stack should verify their version and apply the patch immediately. There is no known compromise of the Suricata distribution channels.

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:H/A:N
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: High (I:H)
  • Availability Impact: None (A:N)

Threat Level: High. The vulnerability allows an attacker to evade detection, potentially leading to successful intrusion without triggering alerts. The low complexity and no required privileges make it attractive for attackers.

Deep Dive & Mechanics

TCP urgent data is a rarely used mechanism for out-of-band signaling. The URG flag and urgent pointer indicate that certain data in the stream should be processed urgently. Suricata, prior to 7.0.8, did not handle this data correctly, leading to a parsing discrepancy between Suricata and the target application.

How the evasion works:

  1. An attacker establishes a TCP connection to a target.
  2. The attacker sends a malicious payload, but sets the URG flag and urgent pointer to a value that causes Suricata to skip or misinterpret part of the payload.
  3. The target application, which correctly processes urgent data, sees the full malicious payload.
  4. Suricata, due to the misinterpretation, does not match the payload against its rules, allowing the attack to bypass detection.

Example scenario:

  • Suricata rule: alert tcp any any -> any 80 (msg:"Malicious payload"; content:"|00 01 02|"; sid:1;)
  • Attacker sends: [URG flag set] [urgent pointer = 3] [00 01 02] [actual malicious data]
  • Suricata may skip the first 3 bytes (the urgent data) and only see [actual malicious data], missing the rule match.
  • The target application processes the full stream including the urgent data, executing the malicious payload.

Vulnerable vs. Patched Code

Vulnerable (pre-7.0.8):

  • No special handling for TCP urgent data.
  • Suricata treats urgent data as part of the normal stream, but may skip or misinterpret it due to incorrect pointer arithmetic.

Patched (7.0.8+):

  • Introduces configuration options to handle TCP urgent data:
    • urgent-data: drop - Drop all packets with URG flag set.
    • urgent-data: ignore - Ignore the urgent pointer and process the stream normally.
    • urgent-data: process - Process urgent data as per RFC (default behavior, but now correctly implemented).
  • In IPS mode, a rule like drop tcp any any -> any any (sid:1; tcp.flags:U*;) can drop all urgent packets.

Code change (conceptual):

// Vulnerable
if (tcp->th_flags & TH_URG) {
    // Incorrect handling, may skip bytes
    process_stream(tcp, urgent_pointer);
}

// Patched
if (tcp->th_flags & TH_URG) {
    if (config->urgent_data == DROP) {
        drop_packet();
    } else if (config->urgent_data == IGNORE) {
        // Ignore urgent pointer, process normally
        process_stream(tcp, 0);
    } else {
        // Correctly handle urgent data
        process_stream(tcp, urgent_pointer);
    }
}

Exploitation & Lab Setup

Red Team (Attacker)

Objective: Bypass Suricata detection to deliver a malicious payload.

Lab Setup:

  • Attacker machine (Kali Linux)
  • Target machine (Ubuntu with Suricata 7.0.7)
  • Target application (e.g., Apache HTTP server)

Exploitation Steps:

  1. Craft a TCP packet with URG flag and urgent pointer using Scapy:
from scapy.all import *

# Establish connection
ip = IP(src="192.168.1.10", dst="192.168.1.20")
tcp_syn = TCP(sport=12345, dport=80, flags="S", seq=1000)
syn_ack = sr1(ip/tcp_syn)

# Send malicious payload with URG flag
payload = b"GET /malicious HTTP/1.1\r\nHost: target\r\n\r\n"
urgent_pointer = 10  # Skip first 10 bytes
tcp_data = TCP(sport=12345, dport=80, flags="U", seq=1001, ack=syn_ack.seq+1, urgptr=urgent_pointer)
send(ip/tcp_data/payload)
  1. The target application receives the full payload, but Suricata may skip the first 10 bytes, missing the rule match.

Expected Result: Suricata does not alert on the malicious request.

Blue Team (Defender)

Objective: Detect and block exploitation attempts.

Detection Steps:

  1. Monitor for TCP packets with URG flag set:
    • Use tcpdump: tcpdump 'tcp[13] & 0x20 != 0'
  2. Enable Suricata logging for urgent data:
    • In suricata.yaml, set urgent-data: drop or urgent-data: ignore.
  3. Create a Suricata rule to alert on urgent data:
alert tcp any any -> any any (msg:"TCP URG flag detected"; tcp.flags:U; sid:1000001; rev:1;)
  1. In IPS mode, use a drop rule:
drop tcp any any -> any any (msg:"TCP URG flag dropped"; tcp.flags:U; sid:1000002; rev:1;)

Indicators of Compromise (IOCs)

  • Network IOCs:

    • TCP packets with URG flag set (tcp[13] & 0x20 != 0)
    • Unusual urgent pointer values (e.g., non-zero)
    • Packets with urgent data that do not match expected application behavior
  • Host IOCs:

    • Suricata logs showing urgent-data events (if logging enabled)
    • Suricata alerts with tcp.flags:U (if rule deployed)
  • File IOCs:

    • Suricata configuration files with urgent-data: process (vulnerable setting)

Detection Engineering

YARA Rule

rule detect_tcp_urgent_data {
    meta:
        description = "Detects TCP packets with URG flag set, potential CVE-2024-55629 exploitation"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-55629"
    strings:
        $urg_flag = { 20 }  // TCP header flags byte with URG bit (0x20)
    condition:
        $urg_flag at 0
}

Sigma Rule

title: Detection of TCP URG Flag Set
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects network packets with TCP URG flag set, indicating potential CVE-2024-55629 exploitation
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2024-55629
logsource:
    category: network_connection
    product: suricata
detection:
    selection:
        tcp.flags: "U"
    condition: selection
falsepositives:
    - Legitimate use of TCP urgent data (rare)
level: high

Suricata Rule

alert tcp any any -> any any (msg:"CVE-2024-55629 - TCP URG Flag Detected"; tcp.flags:U; sid:1000003; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Suricata to version 7.0.8 or later.
  2. In IPS mode, add a drop rule for TCP URG packets:
drop tcp any any -> any any (sid:1; tcp.flags:U*;)
  1. Configure urgent-data: drop in suricata.yaml to drop all urgent packets.

Long-term Mitigations:

  • Monitor for TCP urgent data usage in your network.
  • Implement network segmentation to limit exposure.
  • Use additional detection layers (e.g., host-based IDS) to catch evasions.

Workaround (if patching is not possible):

  • Use a firewall to drop TCP packets with URG flag set:
    • iptables: iptables -A INPUT -p tcp --tcp-flags URG URG -j DROP
    • nftables: nft add rule inet filter input tcp flags urg drop

Report generated by Valters IT DevSecOps & CTI Expert System

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-55629/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.