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).
[ { "signature_type": "Function", "deprecated": false, "source": "https://github.com/oisf/suricata/commit/b9579fbe7dd408200ef03cbe20efddb624b73885", "signature_version": "v1", "target": { "function": "DetectEngineContentInspection", "file": "src/detect-engine-content-inspection.c" }, "digest": { "function_hash": "1547637357396393389582967841522904576", "length": 10345.0 }, "id": "CVE-2017-15377-3287e5bf" }, { "signature_type": "Line", "deprecated": false, "source": "https://github.com/oisf/suricata/commit/b9579fbe7dd408200ef03cbe20efddb624b73885", "signature_version": "v1", "target": { "file": "src/detect-engine-content-inspection.c" }, "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" } ]