GHSA-23m2-mghx-vqmf
Wagtail: Reflected XSS in dynamic image URL generator view
Packages
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
A reflected cross-site scripting (XSS) vulnerability exists on the dynamic image URL generator view within the Wagtail admin interface. A user with a limited-permission editor account for the Wagtail admin could craft a URL that, when viewed by a user with higher privileges, could perform actions with that user's credentials. The vulnerability is present for all sites, even if they do not enable the [dynamic image serve view](https://docs.wagtail.org/en/stable/advanced_topics/images/image_serve_view.html). The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin.
### Patches
Patched versions have been released as Wagtail 7.3.3 and 7.4.2.
### Workarounds
For sites that cannot easily upgrade to a current supported version, the vulnerability can be patched by adding the following code to `urls.py` URL pattern declarations to override the vulnerable view. This disables the admin dynamic image preview functionality, while the public-facing dynamic image serve view still works.
```python
from django.http import HttpResponseBadRequest
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
def disabled_output(request, image_id):
return HttpResponseBadRequest("", content_type="text/plain")
urlpatterns = [
# Example where the CMS admin is at /admin/.
# Add this before the Wagtail admin URLs registration, with the same sub-path.
path("admin/images/<int:image_id>/generate_url/output/", disabled_output),
path("admin/", include(wagtailadmin_urls)),
]
```
### Acknowledgements
Many thanks to Thibaud Colas (@thibaudcolas) for reporting this issue.
### For more information
If you have any questions or comments about this advisory:
- Visit Wagtail's [support channels](https://docs.wagtail.org/en/stable/support.html)
- Email us at [[email protected]](mailto:[email protected]) (view our [security policy](https://github.com/wagtail/wagtail/security/policy) for more information).
References
External links from the advisory. They lead to third-party sites.