From d3f84419931d394507b902348d05f33fd6b0df88 Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Wed, 20 May 2020 19:24:58 -0400 Subject: [PATCH] Catch situation where Regex flag fails (#1426) * Catch an exception where a user supplied regex Flag can fail to parse * Starts on #1425 --- CTFd/plugins/flags/__init__.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CTFd/plugins/flags/__init__.py b/CTFd/plugins/flags/__init__.py index 0d2ca328..687b6ce6 100644 --- a/CTFd/plugins/flags/__init__.py +++ b/CTFd/plugins/flags/__init__.py @@ -49,10 +49,14 @@ class CTFdRegexFlag(BaseFlag): saved = chal_key_obj.content data = chal_key_obj.data - if data == "case_insensitive": - res = re.match(saved, provided, re.IGNORECASE) - else: - res = re.match(saved, provided) + try: + if data == "case_insensitive": + res = re.match(saved, provided, re.IGNORECASE) + else: + res = re.match(saved, provided) + # TODO: this needs plugin improvements. See #1425. + except re.error: + return False return res and res.group() == provided