CVE-2021-37592
📋 TL;DR
This vulnerability allows attackers to evade Suricata's TCP traffic inspection by sending a crafted sequence of TCP segments from a malicious client. It affects Suricata installations before version 5.0.8 and 6.x before 6.0.4, potentially allowing malicious traffic to bypass network security monitoring.
💻 Affected Systems
- Suricata IDS/IPS
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete evasion of Suricata's TCP inspection, allowing malicious payloads (malware, exploits, C2 traffic) to pass undetected through network security monitoring.
Likely Case
Selective evasion of specific TCP-based detection rules, enabling targeted attacks to bypass security controls while normal traffic remains monitored.
If Mitigated
Limited impact if Suricata is deployed in conjunction with other security controls (firewalls, IPS, endpoint protection) that provide defense-in-depth.
🎯 Exploit Status
Exploitation requires crafting specific TCP segment sequences; attacker needs network access to send traffic to monitored networks.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 5.0.8 or 6.0.4
Vendor Advisory: https://forum.suricata.io/t/suricata-6-0-4-and-5-0-8-released/1942
Restart Required: Yes
Instructions:
1. Backup current Suricata configuration. 2. Stop Suricata service. 3. Update to Suricata 5.0.8 or 6.0.4 using package manager or source compilation. 4. Restart Suricata service. 5. Verify version and functionality.
🔧 Temporary Workarounds
TCP Stream Reassembly Configuration
allAdjust TCP stream reassembly settings to be more strict, though this may impact performance and legitimate traffic
suricata -c suricata.yaml --set stream.reassembly.memcap=xxx
suricata -c suricata.yaml --set stream.reassembly.depth=xxx
🧯 If You Can't Patch
- Deploy additional network security controls (firewalls, IPS) in parallel to provide defense-in-depth
- Implement network segmentation to limit potential impact of traffic bypassing Suricata monitoring
🔍 How to Verify
Check if Vulnerable:
Check Suricata version: suricata --build-info | grep version
Check Version:
suricata --build-info | grep version
Verify Fix Applied:
Confirm version is 5.0.8 or higher for 5.x branch, or 6.0.4 or higher for 6.x branch
📡 Detection & Monitoring
Log Indicators:
- Unusual TCP stream reassembly errors
- Patterns of TCP segments with abnormal sequencing
Network Indicators:
- TCP traffic with crafted segment sequences designed to evade reassembly
- Traffic that should trigger Suricata rules but doesn't
SIEM Query:
source="suricata" ("stream reassembly" OR "tcp evasion") | stats count by src_ip, dest_ip
🔗 References
- https://forum.suricata.io/t/suricata-6-0-4-and-5-0-8-released/1942
- https://github.com/OISF/suricata/releases
- https://redmine.openinfosecfoundation.org/issues/4569
- https://forum.suricata.io/t/suricata-6-0-4-and-5-0-8-released/1942
- https://github.com/OISF/suricata/releases
- https://redmine.openinfosecfoundation.org/issues/4569