An issue was discovered in Suricata before 6.0.4. It is possible to bypass/evade any HTTP-based signature by faking an RST TCP packet with random TCP options of the md5header from the client side. After the three-way handshake, it's possible to inject an RST ACK with a random TCP md5header option. Then, the client can send an HTTP GET request with a forbidden URL. The server will ignore the RST ACK and send the response HTTP packet for the client's request. These packets will not trigger a Suricata reject action.
{
"binaries": [
{
"binary_name": "libhtp-0.5.23-1",
"binary_version": "3.2-2ubuntu3"
},
{
"binary_name": "suricata",
"binary_version": "3.2-2ubuntu3"
},
{
"binary_name": "suricata-hyperscan",
"binary_version": "3.2-2ubuntu3"
},
{
"binary_name": "suricata-oinkmaster",
"binary_version": "3.2-2ubuntu3"
}
]
}