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

CVE-2025-29915

CVE-2025-29915 Security Advisory in Suricata
📅 PUBLISHED: 2025-04-10 19:51 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.27%
👁️
0.27% probability
6.8× 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-2025-29915 is a high-severity vulnerability (CVSS 7.5) in Suricata, a widely used network Intrusion Detection System (IDS), Intrusion Prevention System (IPS), and Network Security Monitoring engine. The flaw resides in the AF_PACKET defragmentation option, which is enabled by default. This option allows the AF_PACKET socket to reassemble fragmented IP packets before they reach Suricata for inspection. However, Suricata's default packet buffer size is based on the network interface's Maximum Transmission Unit (MTU). When fragmented packets are reassembled, the resulting packet can exceed the MTU, causing Suricata to see only truncated packets. This leads to missed detections and potential evasion of network security monitoring. The vulnerability is unpatched in versions prior to 7.0.9, which introduces better defaults and configuration warnings.

⚡ 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 application, not as an NPM, PyPI, Go, or Ruby package. Therefore, supply chain package security concerns are not directly applicable. However, organizations should verify the integrity of Suricata binaries or source code from the official repository (https://github.com/OISF/suricata) and ensure they are not using compromised or unofficial builds.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.5 (High)
  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely by sending fragmented packets over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required; an attacker can simply send fragmented IP packets.
  • Privileges Required (PR): None (N) – No authentication or privileges are needed.
  • User Interaction (UI): None (N) – No user action is required.
  • Scope (S): Unchanged (U) – The impact is confined to the vulnerable component.
  • Confidentiality (C): None (N) – No direct data exposure.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): High (H) – The vulnerability can cause Suricata to miss detection of malicious traffic, effectively degrading its availability as a security monitoring tool.

Threat Level: High. The vulnerability allows an attacker to evade detection by sending fragmented packets that are reassembled into oversized packets, which Suricata truncates. This can lead to undetected malicious activity, including data exfiltration, command-and-control communication, or exploitation attempts.

Deep Dive & Mechanics

The AF_PACKET socket is a Linux-specific feature that allows direct access to network packets at the data link layer. Suricata uses AF_PACKET in "defrag" mode to reassemble fragmented IP packets before inspection. This is intended to ensure that Suricata sees the complete payload of fragmented packets, which is crucial for accurate detection.

The Vulnerability:

  1. Default Configuration: The af-packet section in Suricata's configuration (suricata.yaml) has a defrag option that defaults to yes. This enables IP defragmentation at the AF_PACKET level.
  2. Buffer Size Mismatch: Suricata's default packet buffer size is derived from the network interface's MTU (e.g., 1500 bytes for Ethernet). When AF_PACKET reassembles fragmented packets, the resulting packet can be larger than the MTU (e.g., a 3000-byte payload split into two 1500-byte fragments).
  3. Truncation: Suricata allocates a buffer based on the MTU to receive packets from AF_PACKET. If the reassembled packet exceeds this buffer size, the packet is truncated. Suricata only inspects the truncated portion, missing the rest of the payload.

Attack Scenario: An attacker can craft fragmented IP packets that, when reassembled, form a malicious payload (e.g., an exploit or command) that is larger than the MTU. Suricata will only see the first part of the payload, potentially missing the malicious content. For example, an attacker could split a SQL injection payload across two fragments. Suricata would only inspect the first fragment, which might appear benign, while the second fragment contains the injection.

Root Cause: The default buffer size is not adjusted for defragmented packets. The fix in Suricata 7.0.9 changes the default buffer size to a larger value (e.g., 65535 bytes) when defrag is enabled, and adds warnings for configurations that may lead to truncation.

Vulnerable vs. Patched Code

Vulnerable Configuration (suricata.yaml):

af-packet:
  - interface: eth0
    defrag: yes
    # No explicit buffer-size set; defaults to MTU (e.g., 1500)

Patched Configuration (Suricata 7.0.9):

af-packet:
  - interface: eth0
    defrag: yes
    buffer-size: 65535  # Explicitly set to handle defragmented packets

Code Change (Conceptual): In the source code, the vulnerable version uses iface->mtu as the default buffer size. The patched version checks if defrag is enabled and, if so, uses a larger default (e.g., 65535) or warns the user to set an appropriate buffer-size.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Objective: Evade Suricata detection by sending fragmented packets that are reassembled into oversized payloads.

Lab Setup:

  • Attacker: Kali Linux with scapy or hping3
  • Target: Suricata 7.0.8 (or earlier) running on Ubuntu 22.04 with AF_PACKET defrag enabled
  • Network: Both machines on the same subnet

Exploit Steps:

  1. Craft Fragmented Packets: Use scapy to send a malicious payload (e.g., a simple "alert" string) split across two IP fragments.
  2. Send to Target: The target Suricata will reassemble the fragments, but the resulting packet will exceed the MTU (e.g., 1500 bytes). Suricata will truncate the packet and only inspect the first fragment.
  3. Verify Evasion: Check Suricata logs; the malicious payload should not trigger any alert.

Example Scapy Script:

from scapy.all import *

# Malicious payload (e.g., 2000 bytes)
payload = "A" * 2000

# Fragment the payload
fragments = fragment(IP(dst="192.168.1.100")/UDP(sport=1234, dport=80)/Raw(load=payload), fragsize=1400)

# Send fragments
for frag in fragments:
    send(frag)

Expected Result: Suricata does not alert on the payload because it only sees the first 1500 bytes (truncated).

Blue Team (Defense & Detection)

Detection:

  • Monitor for fragmented packets that are larger than the MTU after reassembly.
  • Use network taps or port mirroring to capture full packets before Suricata truncation.

Mitigation:

  • Upgrade to Suricata 7.0.9 or later.
  • If upgrade is not possible, manually set buffer-size to a large value (e.g., 65535) in the af-packet configuration.
  • Enable Suricata's built-in IP defragmentation (separate from AF_PACKET) to handle oversized packets.

Hunting Query (Suricata):

# Check for truncated packets in Suricata stats
suricata --dump-stats | grep -i trunc

Indicators of Compromise (IOCs)

  • Network Traffic:
    • IP fragments with total reassembled size > interface MTU (e.g., > 1500 bytes)
    • Fragmented packets where the first fragment contains benign data and subsequent fragments contain malicious payloads
  • Suricata Logs:
    • Log entries indicating packet truncation (e.g., "packet truncated" or "pcap: truncated packet")
    • Missing alerts for known malicious patterns that were sent as fragmented packets
  • System Logs:
    • Suricata error messages related to buffer size or defragmentation

Detection Engineering

YARA Rule

rule CVE_2025_29915_Suricata_Defrag_Evasion {
    meta:
        description = "Detects fragmented IP packets that may evade Suricata due to AF_PACKET defrag truncation"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-29915"
    strings:
        $frag_offset = { 45 00 }  // IP header with fragment offset (first byte 0x45, second byte 0x00)
        $more_fragments = { 20 }   // More fragments flag (bit 1 of IP flags)
    condition:
        $frag_offset at 0 and $more_fragments at 1
}

Sigma Rule

title: Suricata AF_PACKET Defrag Evasion Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects fragmented IP packets that may be used to evade Suricata detection due to AF_PACKET defrag truncation (CVE-2025-29915)
author: Valters IT
date: 2025/04/10
logsource:
    category: network_flow
    product: suricata
detection:
    selection:
        event_type: alert
        alert.signature_id: 2100000  # Example signature ID for fragmentation
    condition: selection
falsepositives:
    - Legitimate fragmented traffic (e.g., NFS, VoIP)
level: medium
tags:
    - attack.t1190
    - cve.2025.29915

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-29915 - Possible AF_PACKET Defrag Evasion"; fragbits: M; ip_proto: != tcp; sid: 1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Suricata: Update to version 7.0.9 or later, which includes better defaults and warnings.
  2. Manual Configuration: If upgrade is not possible, edit suricata.yaml and set buffer-size: 65535 under the af-packet section for each interface.
  3. Enable Suricata IP Defrag: Use Suricata's built-in IP defragmentation engine (separate from AF_PACKET) by setting defrag: yes in the ip-defrag configuration.

Long-Term Measures:

  • Regularly update Suricata to the latest stable version.
  • Monitor Suricata logs for truncation warnings.
  • Implement network segmentation to limit exposure of IDS/IPS systems.
  • Use additional network monitoring tools (e.g., Zeek) to cross-check Suricata alerts.

Workaround:

  • Disable AF_PACKET defrag (defrag: no) and rely on Suricata's own IP defragmentation. Note: This may impact performance on high-speed networks.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-29915/ · 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.