From c0142cf3264c7cca424af0a7f90d808ca6848974 Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Tue, 4 Jun 2019 10:41:57 +0000 Subject: [PATCH] Changed compared variables of range id intervall in ruleRemoveById ctl action. #2111 * changed the variables in clause * added test case (@theMiddle) * fixes #2111 --- Makefile.am | 1 + src/actions/ctl/rule_remove_by_id.cc | 2 +- test/test-cases/regression/issue-2111.json | 33 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 test/test-cases/regression/issue-2111.json diff --git a/Makefile.am b/Makefile.am index 3bf07866..f67ecb4f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -151,6 +151,7 @@ TESTS+=test/test-cases/regression/issue-1941.json TESTS+=test/test-cases/regression/issue-1943.json TESTS+=test/test-cases/regression/issue-1956.json TESTS+=test/test-cases/regression/issue-2099.json +TESTS+=test/test-cases/regression/issue-2111.json TESTS+=test/test-cases/regression/issue-394.json TESTS+=test/test-cases/regression/issue-849.json TESTS+=test/test-cases/regression/issue-960.json diff --git a/src/actions/ctl/rule_remove_by_id.cc b/src/actions/ctl/rule_remove_by_id.cc index 678252d1..c1f60285 100644 --- a/src/actions/ctl/rule_remove_by_id.cc +++ b/src/actions/ctl/rule_remove_by_id.cc @@ -57,7 +57,7 @@ bool RuleRemoveById::init(std::string *error) { return false; } - if (n1s > n2s) { + if (n1n > n2n) { error->assign("Invalid range: " + b); return false; } diff --git a/test/test-cases/regression/issue-2111.json b/test/test-cases/regression/issue-2111.json new file mode 100644 index 00000000..c3faa7d2 --- /dev/null +++ b/test/test-cases/regression/issue-2111.json @@ -0,0 +1,33 @@ +[ + { + "enabled":1, + "version_min":300000, + "title":"Testing ctl:ruleRemoveById with range - issue 1444", + "expected":{ + "http_code":200 + }, + "client":{ + "ip":"127.0.0.1", + "port":123 + }, + "request":{ + "headers":{ + "Host":"localhost", + "User-Agent":"curl/7.38.0", + "Accept":"*/*" + }, + "uri":"index.php?foo=bar&z=xxx", + "method":"GET", + "body": "" + }, + "server":{ + "ip":"127.0.0.1", + "port":80 + }, + "rules":[ + "SecRuleEngine On", + "SecRule ARGS:foo \"@rx ^bar$\" \"id:100,phase:1,ctl:ruleRemoveById=200-1999\"", + "SecRule ARGS:z \"@rx ^xxx$\" \"id:1010,phase:1,deny,status:403\"" + ] + } +]