ANT-2026-WCSVRYAX · oisf/suricata

use-after-free high

GHSA-59q6-j4w8-8pjx

Severity Claude critical · Security research firm high · Maintainer -

Discovered by Claude Mythos Preview

REPORT

Anthropic's analysis, sealed at approval. Disclosure to the maintainer was performed by Trail of Bits.

ANT-2026-WCSVRYAX: heap-use-after-free in suricata

A heap-use-after-free was detected in Suricata while fuzzing through the fuzz_sigpcap_aware7 harness. The faulting access is a READ of freed heap memory. The sigpcap_aware harness drives combined signature rules and pcap traffic through the detection engine, so the bug is likely reachable via a crafted rule set paired with crafted packet capture input.

Target

Project: suricata
Commit: 7eb45c02afbaf2ad

Technical Details

AddressSanitizer heap-use-after-free (READ) in Suricata triggered via the fuzz_sigpcap_aware7 fuzzing entrypoint.

Crash signature: ASAN heap-use-after-free READ

Reproduction

Reproduce against the commit listed above as described under Technical Details.

[No reproducer or sanitizer output attached — request from security-cvd@anthropic.com if needed.]

Acknowledgement

This vulnerability was discovered by Claude, Anthropic's AI assistant, and triaged by the Anthropic security team in collaboration with Anthropic Research. Please direct questions to security-cvd@anthropic.com and reference ANT-2026-WCSVRYAX.


Reference: ANT-2026-WCSVRYAX
Anthropic CVD Policy: https://www.anthropic.com/coordinated-vulnerability-disclosure

SECURITY RESEARCH FIRM ANALYSIS

Triage and disclosure were performed by Trail of Bits.

Verdict
true positive
Severity
high
UPSTREAM FIX

The change that resolved this finding.

diff --git a/rust/src/detect/transforms/dotprefix.rs b/rust/src/detect/transforms/dotprefix.rs
index 2b52462fba1a..b6f973835671 100644
--- a/rust/src/detect/transforms/dotprefix.rs
+++ b/rust/src/detect/transforms/dotprefix.rs
@@ -18,8 +18,8 @@
 use crate::detect::SIGMATCH_NOOPT;
 use suricata_sys::sys::{
     DetectEngineCtx, DetectEngineThreadCtx, InspectionBuffer, SCDetectHelperTransformRegister,
-    SCDetectSignatureAddTransform, SCTransformTableElmt, Signature, SCInspectionBufferCheckAndExpand,
-    SCInspectionBufferTruncate,
+    SCDetectSignatureAddTransform, SCInspectionBufferCheckAndExpand, SCInspectionBufferInPlace,
+    SCInspectionBufferTruncate, SCTransformTableElmt, Signature,
 };
 
 use std::os::raw::{c_int, c_void};
@@ -49,17 +49,19 @@ unsafe extern "C" fn dot_prefix_transform(
     if input_len == 0 {
         return;
     }
+    let inplace = SCInspectionBufferInPlace(buffer);
+
     let output = SCInspectionBufferCheckAndExpand(buffer, input_len + 1);
     if output.is_null() {
         // allocation failure
         return;
     }
-    // get input after possible realloc
-    let input = (*buffer).inspect;
-    if input.is_null() {
-        // allocation failure
-        return;
-    }
+    let input = if inplace {
+        // may have been reallocated
+        (*buffer).buf
+    } else {
+        (*buffer).inspect
+    };
     let input = build_slice!(input, input_len as usize);
     let output = std::slice::from_raw_parts_mut(output, (input_len + 1) as usize);
 

https://github.com/OISF/suricata/commit/6d437956e2ed2da75976d7635cbe09a953d3c489

TIMELINE

Dates from discovery through public reveal.

  1. 2026-03-26 Reported to tracker
  2. 2026-04-29 Sent to maintainer
  3. 2026-05-09 Maintainer acknowledged
  4. 2026-05-17 Patch released
  5. 2026-08-17 Publicly revealed
PROVENANCE

SHA-3-512 hash:

b21d5c53bcd9424f1c836f2ca4da99b974bbc8e0df5a3ef201cb2cc4f734880595b27a54ff544e55a50dc1268af982b35e83fea10a760091735bb9d8ffc4b5c8

Committed 2026-04-29 00:04 PT

Revealed 2026-08-17 10:47 PT

Verify (download preimage.json)

Show preimage JSON
{
  "ant_id": "ANT-2026-WCSVRYAX",
  "bug_class": "heap-use-after-free",
  "claude_severity": "critical",
  "commit_sha": "7eb45c02afbaf2ad",
  "created_at": "2026-03-27T02:07:51+00:00",
  "description": "A heap-use-after-free was detected in Suricata while fuzzing through the fuzz_sigpcap_aware7 harness. The faulting access is a READ of freed heap memory. The sigpcap_aware harness drives combined signature rules and pcap traffic through the detection engine, so the bug is likely reachable via a crafted rule set paired with crafted packet capture input.",
  "discovered_at": null,
  "location": null,
  "poc_sha256": null,
  "preimage_version": 1,
  "project": "suricata",
  "reproduction": null,
  "technical_details": null,
  "title": "heap-use-after-free in suricata",
  "vendor_severity": "high"
}