From 5f7e3103052f163d99908396559432d8674995ed Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Fri, 20 Jan 2023 16:47:19 -0500 Subject: [PATCH] Fixes #11555: Avoid inadvertent interpretation of search query as regular expression under global search --- docs/release-notes/version-3.4.md | 6 +++++- netbox/utilities/utils.py | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/version-3.4.md b/docs/release-notes/version-3.4.md index bf32f2d26..234c8ee0e 100644 --- a/docs/release-notes/version-3.4.md +++ b/docs/release-notes/version-3.4.md @@ -2,6 +2,10 @@ ## v3.4.4 (FUTURE) +### Bug Fixes + +* [#11555](https://github.com/netbox-community/netbox/issues/11555) - Avoid inadvertent interpretation of search query as regular expression under global search (previously [#11516](https://github.com/netbox-community/netbox/issues/11516)) + --- ## v3.4.3 (2023-01-20) @@ -34,7 +38,7 @@ * [#11483](https://github.com/netbox-community/netbox/issues/11483) - Apply configured formatting to custom date fields * [#11488](https://github.com/netbox-community/netbox/issues/11488) - Add missing `description` fields to several REST API serializers * [#11497](https://github.com/netbox-community/netbox/issues/11497) - Enforce `run_script` permission when executing scripts via REST API -* [#11516](https://github.com/netbox-community/netbox/issues/11516) - Prevent text highlight utility from interpreting match as regex +* ~[#11516](https://github.com/netbox-community/netbox/issues/11516) - Prevent text highlight utility from interpreting match as regex~ * [#11522](https://github.com/netbox-community/netbox/issues/11522) - Correct tag links under contact & tenant list views * [#11544](https://github.com/netbox-community/netbox/issues/11544) - Catch ValidationError exception when filtering by invalid MAC address diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index b6f626eb4..23c2666df 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -527,6 +527,7 @@ def highlight_string(value, highlight, trim_pre=None, trim_post=None, trim_place if type(highlight) is re.Pattern: pre, match, post = highlight.split(value, maxsplit=1) else: + highlight = re.escape(highlight) pre, match, post = re.split(fr'({highlight})', value, maxsplit=1, flags=re.IGNORECASE) except ValueError as e: # Match not found