In Suricata before 4.x, it was possible to trigger lots of redundant checks on the content of crafted network traffic with a certain signature, because of DetectEngineContentInspection in detect-engine-content-inspection.c. The search engine doesn't stop when it should after no match is found; instead, it stops only upon reaching inspection-recursion-limit (3000 by default).
[
{
"digest": {
"length": 10345.0,
"function_hash": "1547637357396393389582967841522904576"
},
"id": "CVE-2017-15377-3287e5bf",
"source": "https://github.com/oisf/suricata/commit/b9579fbe7dd408200ef03cbe20efddb624b73885",
"signature_type": "Function",
"target": {
"file": "src/detect-engine-content-inspection.c",
"function": "DetectEngineContentInspection"
},
"signature_version": "v1",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"17949487339701019940071893937703980462",
"33673278759311419266585675622145176093",
"112886409384349545659691823683544841294",
"310613243680720074865501842410446004891",
"204980951247739953857345622138604479965",
"6935063167579620641207446215356795904",
"211932716375800284193409779227638260273",
"44228939355122794396981853483122429398",
"277884505084455662988686551363976053896",
"101177581376296490308098159392520209879",
"38095666842331217360143193360053197049",
"102149989975042568274982326145837071379",
"119490881342279677228783401633034436722",
"83794047680196787011097562801008347387",
"138834304207770202821220112073010668682",
"328421256042357500470112543431409348921",
"147852611678446612270735654350918687506",
"322663509831446824338009493435970888697",
"171896775996508683648459858208144296220",
"140657672315901454446263622568359739232"
]
},
"id": "CVE-2017-15377-f1cf4d52",
"source": "https://github.com/oisf/suricata/commit/b9579fbe7dd408200ef03cbe20efddb624b73885",
"signature_type": "Line",
"target": {
"file": "src/detect-engine-content-inspection.c"
},
"signature_version": "v1",
"deprecated": false
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2017-15377.json"