{"id":"CVE-2026-54263","aliases":["GHSA-23m2-mghx-vqmf","PYSEC-2026-616"],"url":"https://o3.security/vulnerability/CVE-2026-54263","summary":"Wagtail: Reflected XSS in dynamic image URL generator view","details":"### Impact\n\nA 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.\n\n### Patches\n\nPatched versions have been released as Wagtail 7.3.3 and 7.4.2.\n\n### Workarounds\n\nFor 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.\n\n```python\nfrom django.http import HttpResponseBadRequest\nfrom django.urls import path\nfrom wagtail.admin import urls as wagtailadmin_urls\n\ndef disabled_output(request, image_id):\n    return HttpResponseBadRequest(\"\", content_type=\"text/plain\")\n\nurlpatterns = [\n    # Example where the CMS admin is at /admin/.\n    # Add this before the Wagtail admin URLs registration, with the same sub-path.\n    path(\"admin/images/<int:image_id>/generate_url/output/\", disabled_output),\n    path(\"admin/\", include(wagtailadmin_urls)),\n]\n```\n\n### Acknowledgements\n\nMany thanks to Thibaud Colas (@thibaudcolas) for reporting this issue.\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n- Visit Wagtail's [support channels](https://docs.wagtail.org/en/stable/support.html)\n- Email us at [security@wagtail.org](mailto:security@wagtail.org) (view our [security policy](https://github.com/wagtail/wagtail/security/policy) for more information).","published":"2026-07-01T21:12:30.719Z","modified":"2026-08-12T03:51:25.869546166Z","cvss":{"score":7.3,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N"},"epss":{"score":0.00203,"percentile":0.10522,"asOf":"2026-08-03"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"PyPI","name":"wagtail","fixedVersion":"7.3.3"},{"ecosystem":"PyPI","name":"wagtail","fixedVersion":"7.4.2"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54263.json"},{"type":"ADVISORY","url":"https://github.com/wagtail/wagtail/security/advisories/GHSA-23m2-mghx-vqmf"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54263"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/wagtail/PYSEC-2026-616.yaml"},{"type":"PACKAGE","url":"https://github.com/wagtail/wagtail"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:25.869546166Z"}}