Project

General

Profile

Actions

Bug #4530

closed

DOS Quadratic complexity when having too many transactions

Added by Philippe Antoine over 3 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Target version:
Affected Versions:
Effort:
Difficulty:
Label:

Description

Kind of found by oss-fuzz
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=35195

This is true for protocols such as MQTT, Modbus or HTTP2, where each packet/PDU has a transaction identifier (called stream for HTTP2), and we loop over our whole list of transactions to find the right one.
Attack si to start many requests, and do not finish them, so that Suricata keeps them.

There may be more protocols


Related issues 2 (0 open2 closed)

Related to Suricata - Task #4721: http2: enable by defaultClosedPhilippe AntoineActions
Related to Suricata - Security #5399: mqtt: DOS by quadratic with too many transactions in one parseClosedOISF DevActions
Actions #1

Updated by Philippe Antoine over 3 years ago

  • Status changed from New to In Review

Gitlab

Actions #2

Updated by Philippe Antoine over 3 years ago

  • Private changed from Yes to No
Actions #3

Updated by Philippe Antoine about 3 years ago

  • Related to Task #4721: http2: enable by default added
Actions #5

Updated by Philippe Antoine almost 3 years ago

Another fix could be to have a hash table instead of a list for transactions for MQTT and such...

Actions #6

Updated by Shivani Bhardwaj over 2 years ago

Philippe Antoine wrote in #note-5:

Another fix could be to have a hash table instead of a list for transactions for MQTT and such...

I remember having come up with this and then Jeff also suggested it long ago. Don't recall the reason why it was not considered though. Maybe Jeff does..

Actions #7

Updated by Philippe Antoine over 2 years ago

https://github.com/OISF/suricata/pull/6906 got merged
Now, we still need to add this check to the fuzz target and fix the other protocols cf https://github.com/OISF/suricata/pull/6863

Actions #8

Updated by Philippe Antoine over 2 years ago

  • Status changed from In Review to Closed
Actions #9

Updated by Philippe Antoine over 2 years ago

  • Related to Security #5399: mqtt: DOS by quadratic with too many transactions in one parse added
Actions

Also available in: Atom PDF