mirror of https://github.com/OISF/suricata
detect: update progress in case of pcre-only rule group
Ticket: 8684 The behavior of the rule alert ip any any -> any any (pcre:"/.*mc|\H+$/"; sid:4;) depended upon the presence of another rule such as alert ip any any -> any any (content:"*mcH"; sid:5;) With the sid 5 content rule, the code went through PrefilterPktStream which updated raw_stream_progress, which ended up updating raw_progress_rel which was used on later packets to know where to start. Without the sid 5 content rule, there was no update of these progresses. It led to quadratic complexity, as for each new packet, we ran the pcre engine on the whole tcp stream from the beginning, with the newly added payload data. Fix is to process sid 4 pcre rule the same way whether there is or there is not a sid 5 content rule. So, in case we do not have a mpm store for a signature group head, we register a dummy stream prefilter, whose goal will just be to update raw_stream_progresspull/16497/head
parent
4e875c80d7
commit
f87b8e64a5
Loading…
Reference in New Issue