From 93322a61d0174bdd5ace6671edfee97248f7ac0f Mon Sep 17 00:00:00 2001 From: Jeff Lucovsky Date: Wed, 1 Jul 2026 08:51:27 -0400 Subject: [PATCH] async-oneside: test behavior with async-oneside Ticket: 8269 Since we know the flow is async, we should not wait for the responses and queue txs, but just process them asap. --- tests/bug-8629-async-oneside/README.md | 22 +++++++++++++++ tests/bug-8629-async-oneside/input.pcap | Bin 0 -> 38022 bytes tests/bug-8629-async-oneside/test.yaml | 34 ++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 tests/bug-8629-async-oneside/README.md create mode 100644 tests/bug-8629-async-oneside/input.pcap create mode 100644 tests/bug-8629-async-oneside/test.yaml diff --git a/tests/bug-8629-async-oneside/README.md b/tests/bug-8629-async-oneside/README.md new file mode 100644 index 000000000..638036a36 --- /dev/null +++ b/tests/bug-8629-async-oneside/README.md @@ -0,0 +1,22 @@ +# Description + +Regression test for issue 8629: SMB transactions must not be allowed to grow +without bound on asynchronous (one-sided) flows. + +When Suricata only ever sees one direction of a flow, SMB requests wait forever +for responses that never arrive. Once the transaction list passes `smb.max-tx` +the parser stops trying to handle this gracefully and instead raises the +`too_many_transactions` event and returns an error, which puts the flow's +app-layer parser into an error state and stops further SMB processing. + +The test lowers `smb.max-tx` so the small capture reaches the limit, and checks +that SMB is parsed up to that point, that the event is raised, and that the flow +is put into an error state (`app_layer.error.smb.parser`). + +# PCAP + +A single SMB2/DCERPC session derived from the `dcerpc-smb-test-01` capture, +reduced to the client->server direction only so it is a genuine one-sided +capture. It begins with a SYN followed by an ACK from the same host, which is +how the engine detects an asynchronous stream, so `stream.async-oneside` is +enabled. diff --git a/tests/bug-8629-async-oneside/input.pcap b/tests/bug-8629-async-oneside/input.pcap new file mode 100644 index 0000000000000000000000000000000000000000..31b8ee6308f902b7b4c9f9e206ed84066c994d69 GIT binary patch literal 38022 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 direction is +# present, as with asymmetric routing or a one-sided tap. Requests pile up +# waiting for responses that are never seen. When the transaction list passes +# smb.max-tx the parser puts the flow into an error state instead of trying to +# handle it gracefully (issue 8629). max-tx is lowered so a small capture +# reaches the limit. +args: +- -k none +- --set stream.async-oneside=true +- --set app-layer.protocols.smb.max-tx=3 + +checks: + # SMB is parsed completely + - filter: + count: 1 + match: + event_type: smb + smb.command: SMB2_COMMAND_SESSION_LOGOFF + + # No max-tx anomaly + - filter: + count: 0 + match: + event_type: anomaly + + # The flow is not in error state + - filter: + count: 1 + match: + event_type: stats + stats.app_layer.error.smb.parser: 0 -- 2.47.3