Project

General

Profile

Actions

Bug #3877

closed

Transaction list grows without bound on parsers that use unidirectional transactions

Added by Jeff Lucovsky over 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Affected Versions:
Effort:
Difficulty:
Label:
Needs backport to 5.0

Description

The SNMP transaction vector length can grow to large values eventually causing packet loss due to excessive time spent in rs_snmp_get_tx_iterator.

At a production site, this manifested as
1. Packet loss: packet loss occurred at rates well within the machine's capacity. Packet loss was nearly always present.
2. Excessive time in rs_snmp_get_tx_iterator (as measured by perf). Several readings showed it with 45% of time spent (displayed by perf).

Through observations obtained by capturing live network traffic, the attached pcap was synthetically constructed to demonstrate the issue. The key thing is the unbalanced ratio of requests to responses.


Files

snmp_patho.pcap (496 KB) snmp_patho.pcap Jeff Lucovsky, 08/15/2020 01:03 PM

Subtasks 9 (0 open9 closed)

Bug #3977: SNMP: Better handling of unidirectional transactionsClosedJason IshActions
Bug #3978: DHCP: Add unidirectional transaction handlingClosedJason IshActions
Bug #3979: IKEv2: Add unidirectional transaction handlingClosedJason IshActions
Bug #3980: MQTT: Add unidirectional transaction handlingClosedJason IshActions
Bug #3981: SIP: Add unidirectional transaction handlingClosedJason IshActions
Bug #3982: RDP: Add unidirectional transaction handlingClosedJason IshActions
Bug #3983: KRB5: Add unidirectional transaction handlingClosedJason IshActions
Bug #3984: NTP: Add unidirectional transaction handlingClosedJason IshActions
Bug #4009: ENIP: Unidirectional transaction handlingClosedJason IshActions

Related issues 2 (0 open2 closed)

Copied to Suricata - Bug #3948: Transaction list grows without bound on parsers that use unidirectional transactions (4.1.x)ClosedJason IshActions
Copied to Suricata - Bug #3949: Transaction list grows without bound on parsers that use unidirectional transactions (5.0.x)ClosedJason IshActions
Actions

Also available in: Atom PDF