Every CVE Search/ Get API key

CVE-2026-54260

Wagtail: Denial of service via unbounded filter specs in the image preview

4.3 MediumFix available

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
Low

Exploit likelihood

0.37%Up 0.2 points since Jul 2, 2026
90%50%10%1%

What each source reports

CVE List Score used 4.3

Wagtail: Denial of service via unbounded filter specs in the image preview

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Record
CVE-2026-54260
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
EUVDEUVD-2026-41146 4.3

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Record
EUVD-2026-41146
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-f2p5-j6fg-5cxf 4.3

Wagtail: Denial of service via unbounded filter specs in the image preview

Impact

An authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation.

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.0.8, 7.3.3, 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.

from django.core.exceptions import PermissionDenied
from django.http import HttpResponseBadRequest
from django.shortcuts import get_object_or_404
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.images.exceptions import InvalidFilterSpecError
from wagtail.images.permissions import permission_policy
from wagtail.images.views import preview


def patched_preview(request, image_id, filter_spec):
    image = get_object_or_404(get_image_model(), id=image_id)

    if not permission_policy.user_has_permission_for_instance(request.user, "change", image):
        raise PermissionDenied

    try:
        filter_obj = Filter(spec=filter_spec)
    except InvalidFilterSpecError:
        return HttpResponseBadRequest("Invalid filter spec", content_type="text/plain")

    allowed = {"original", "width", "height", "min", "max", "fill"}
    if any(operation.method not in allowed for operation in filter_obj.operations):
        return HttpResponseBadRequest("Invalid filter spec", content_type="text/plain")

    return preview(request, image_id, filter_spec)


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>/preview/<str:filter_spec>/", patched_preview)
    path("admin/", include(wagtailadmin_urls)),
]

Acknowledgements

Many thanks to @0x1saac for reporting this issue.

For more information

If you have any questions or comments about this advisory:

Record
GHSA-f2p5-j6fg-5cxf
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
NVD 4.3

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Record
CVE-2026-54260
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
CVSS 3.1
2.7 LowCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
OSV 4.3

Wagtail: Denial of service via unbounded filter specs in the image preview

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Record
CVE-2026-54260
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
OSVGHSA-f2p5-j6fg-5cxf 4.3

Wagtail: Denial of service via unbounded filter specs in the image preview

Impact

An authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation.

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.0.8, 7.3.3, 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.

from django.core.exceptions import PermissionDenied
from django.http import HttpResponseBadRequest
from django.shortcuts import get_object_or_404
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.images.exceptions import InvalidFilterSpecError
from wagtail.images.permissions import permission_policy
from wagtail.images.views import preview


def patched_preview(request, image_id, filter_spec):
    image = get_object_or_404(get_image_model(), id=image_id)

    if not permission_policy.user_has_permission_for_instance(request.user, "change", image):
        raise PermissionDenied

    try:
        filter_obj = Filter(spec=filter_spec)
    except InvalidFilterSpecError:
        return HttpResponseBadRequest("Invalid filter spec", content_type="text/plain")

    allowed = {"original", "width", "height", "min", "max", "fill"}
    if any(operation.method not in allowed for operation in filter_obj.operations):
        return HttpResponseBadRequest("Invalid filter spec", content_type="text/plain")

    return preview(request, image_id, filter_spec)


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>/preview/<str:filter_spec>/", patched_preview)
    path("admin/", include(wagtailadmin_urls)),
]

Acknowledgements

Many thanks to @0x1saac for reporting this issue.

For more information

If you have any questions or comments about this advisory:

Record
GHSA-f2p5-j6fg-5cxf
CVSS 3.1
4.3 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-400
Updated
2026-11-02
OSVPYSEC-2026-613 2.7

Wagtail is an open source content management system built on Django. In versions prior to 7.0.8, 7.3.3 and 7.4.2, an authenticated admin user can trigger expensive rendition processing with purposefully crafted filter specs resulting in potentially service degradation. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin. This issue has been fixed in versions 7.0.8, 7.3.3, and 7.4.2.

Record
PYSEC-2026-613
CVSS 3.1
2.7 LowCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
wagtail
PyPI
before 7.0.8
7.0.8
wagtail
PyPI
7.1 up to 7.3.3
7.3.3
wagtail
PyPI
7.4 up to 7.4.2
7.4.2
wagtail
PyPI
before 7.0.8, plus listed versions
0.10.20.30.3.10.4
Show 45 moreShow less
0.4.10.50.60.70.80.8.10.8.100.8.20.8.30.8.40.8.50.8.60.8.70.8.80.8.91.01.0b11.0b21.0rc11.0rc21.11.101.10.11.10rc11.111.11.11.11rc11.121.12.11.12.21.12.31.12.41.12.51.12.61.12rc11.131.13.11.13.21.13.31.13.41.13rc11.1rc11.21.2rc11.3
7.0.8
wagtail
PyPI
7.1 up to 7.3.3, plus listed versions
7.1.17.1.27.1.37.27.2.1
Show 7 moreShow less
7.2.27.2.37.2rc17.37.3.17.3.27.3rc1
7.3.3
wagtail
PyPI
7.4 up to 7.4.2, plus listed versions
7.4.1
7.4.2
wagtail
PyPI
before 7.0.8, 7.1 up to 7.3.3, 7.4 up to 7.4.2, plus listed versions
0.10.20.30.3.10.4
Show 45 moreShow less
0.4.10.50.60.70.80.8.10.8.100.8.20.8.30.8.40.8.50.8.60.8.70.8.80.8.91.01.0b11.0b21.0rc11.0rc21.11.101.10.11.10rc11.111.11.11.11rc11.121.12.11.12.21.12.31.12.41.12.51.12.61.12rc11.131.13.11.13.21.13.31.13.41.13rc11.1rc11.21.2rc11.3
7.0.87.3.37.4.2

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-54260 is a medium vulnerability (CVSS 4.3) in Torchbox Wagtail, published July 1, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 31st percentile. Fixed in wagtail 7.0.8.

References

This page doesn't list everything

Left out here: 461 versions. The JSON record has them.

MoveEnter Open