From 4497c4b1cef838c0f011e3ea7b95db919670a591 Mon Sep 17 00:00:00 2001 From: Ervin Hegedus Date: Tue, 16 Apr 2019 21:09:44 +0000 Subject: [PATCH] Set match_limit and match_limit_recursion values to regex variables --- src/utils/regex.cc | 4 ++++ src/utils/regex.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/utils/regex.cc b/src/utils/regex.cc index 461f0288a7..6baefc3237 100644 --- a/src/utils/regex.cc +++ b/src/utils/regex.cc @@ -47,6 +47,10 @@ Regex::Regex(const std::string& pattern_) &errptr, &erroffset, NULL); m_pce = pcre_study(m_pc, pcre_study_opt, &errptr); + m_pce->match_limit = MODSEC_PCRE_MATCH_LIMIT; + m_pce->match_limit_recursion = MODSEC_PCRE_MATCH_LIMIT_RECURSION; + m_pce->flags |= PCRE_EXTRA_MATCH_LIMIT; + m_pce->flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION; } diff --git a/src/utils/regex.h b/src/utils/regex.h index 92eb118b46..de80a5b89b 100644 --- a/src/utils/regex.h +++ b/src/utils/regex.h @@ -28,6 +28,8 @@ namespace modsecurity { namespace Utils { #define OVECCOUNT 900 +#define MODSEC_PCRE_MATCH_LIMIT 1500 +#define MODSEC_PCRE_MATCH_LIMIT_RECURSION 1500 class SMatch { public: