A bug in Wagtail's parse_query_string would result in it taking a long time to process suitably crafted inputs. When used to parse sufficiently long strings of characters without a space, parse_query_string would take an unexpectedly large amount of time to process, resulting in a denial of service.
In an initial Wagtail installation, the vulnerability can be exploited by any Wagtail admin user. It cannot be exploited by end users. If your Wagtail site has a custom search implementation which uses parse_query_string, it may be exploitable by other users (e.g. unauthenticated users).
Patches
Patched versions have been released as Wagtail 5.2.6, 6.0.6 and 6.1.3.
This vulnerability affects all unpatched versions from Wagtail 2.0 onwards.
Workarounds
Site owners who are unable to upgrade to a patched version can limit the length of search terms passed to parse_query_string. Whilst the performance characteristics will depend on your hosting environment, 1000 characters has been shown to still be fairly fast, without triggering this vulnerability.
No workaround is available for the Wagtail admin usage.
Acknowledgements
Many thanks to Jake Howard for reporting this issue.
For more information
If you have any questions or comments about this advisory:
This PR contains the following updates:
==5.2.4
->==5.2.6
GitHub Vulnerability Alerts
CVE-2024-39317
Impact
A bug in Wagtail's
parse_query_string
would result in it taking a long time to process suitably crafted inputs. When used to parse sufficiently long strings of characters without a space,parse_query_string
would take an unexpectedly large amount of time to process, resulting in a denial of service.In an initial Wagtail installation, the vulnerability can be exploited by any Wagtail admin user. It cannot be exploited by end users. If your Wagtail site has a custom search implementation which uses
parse_query_string
, it may be exploitable by other users (e.g. unauthenticated users).Patches
Patched versions have been released as Wagtail 5.2.6, 6.0.6 and 6.1.3.
This vulnerability affects all unpatched versions from Wagtail 2.0 onwards.
Workarounds
Site owners who are unable to upgrade to a patched version can limit the length of search terms passed to
parse_query_string
. Whilst the performance characteristics will depend on your hosting environment, 1000 characters has been shown to still be fairly fast, without triggering this vulnerability.No workaround is available for the Wagtail admin usage.
Acknowledgements
Many thanks to Jake Howard for reporting this issue.
For more information
If you have any questions or comments about this advisory:
Release Notes
wagtail/wagtail (wagtail)
### [`v5.2.6`](https://togithub.com/wagtail/wagtail/releases/tag/v5.2.6): 5.2.6 [Compare Source](https://togithub.com/wagtail/wagtail/compare/v5.2.5...v5.2.6) - Fix: CVE-2024-39317: Regular expression denial-of-service via search query parsing (Jake Howard) - Fix: Fix image preview when Willow optimizers are enabled (Alex Tomkins) - Maintenance: Remove django-pattern-library upper bound in testing dependencies (Sage Abdullah) ### [`v5.2.5`](https://togithub.com/wagtail/wagtail/releases/tag/v5.2.5): 5.2.5 [Compare Source](https://togithub.com/wagtail/wagtail/compare/v5.2.4...v5.2.5) - Fix: Respect `WAGTAIL_ALLOW_UNICODE_SLUGS` setting when auto-generating slugs (LB (Ben) Johnston) - Fix: Use correct URL when redirecting back to page search results after an AJAX search (Sage Abdullah) - Fix: Provide `convert_mariadb_uuids` management command to assist with upgrading to Django 5.0+ on MariaDB (Matt Westcott)Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.