Skip to content

[BUG] multiMatch lead to unexpected match #3183

Open
@leveryd

Description

@leveryd

Describe the bug

SecRule REQUEST_BODY "@rx abc" "id:111, msg:'test', t:base64DecodeExt,multiMatch, phase:2, block, capture, severity:'CRITICAL', tag:'attack-rce', tag:'paranoia-level/1', setvar:'tx.matched=%{MATCHED_VAR}', chain"
    SecRule REQUEST_BODY "@rx 123"

The above rule match request which body is 'abc'

curl 127.0.0.1:86 -d 'abc'

The match is not expected, because the rule is "chained" rule, the second rule require the body contains "123" string.

If i remove multiMatch ,then everything is expected.

SecRule REQUEST_BODY "@rx abc" "id:222, msg:'test', t:none, phase:2, block, capture, severity:'CRITICAL', tag:'attack-rce', tag:'paranoia-level/1', setvar:'tx.matched=%{MATCHED_VAR}', chain"
    SecRule REQUEST_BODY "@rx 123"
curl 127.0.0.1:86 -d 'abc'  // not match
curl 127.0.0.1:86 -d 'abc123'  // match

So i think the multiMatch flag has bug when it is used with chain rule

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.xRelated to ModSecurity version 3.xbugIt is a confirmed bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions