Every CVE Search/ Get API key

CVE-2026-54261

Wagtail: Improper permission handling in image preview

6.5 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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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
High
Integrity
None
Availability
None

Exploit likelihood

0.34%Up 0.1 points since Jul 2, 2026
90%50%10%1%

What each source reports

CVE List Score used 6.5

Wagtail: Improper permission handling in 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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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-54261
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-280
Updated
2026-11-02
EUVDEUVD-2026-41148 6.5

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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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-41148
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-r6p4-grq7-xm4m 6.5

Wagtail: Improper permission handling in image preview

Impact

Due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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.shortcuts import get_object_or_404
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
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

    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 and @harshakshit for reporting this issue.

For more information

If you have any questions or comments about this advisory:

Record
GHSA-r6p4-grq7-xm4m
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-280
Updated
2026-11-02
NVD 6.5

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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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-54261
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-280
Updated
2026-11-02
OSV 6.5

Wagtail: Improper permission handling in 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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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-54261
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-280
Updated
2026-11-02
OSVGHSA-r6p4-grq7-xm4m 6.5

Wagtail: Improper permission handling in image preview

Impact

Due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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.shortcuts import get_object_or_404
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
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

    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 and @harshakshit for reporting this issue.

For more information

If you have any questions or comments about this advisory:

Record
GHSA-r6p4-grq7-xm4m
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-280
Updated
2026-11-02
OSVPYSEC-2026-614 6.5

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, due to a missing permission check on the image preview endpoint, a user with access to the Wagtail admin can preview any image. The existing data of the image object itself is not exposed. 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-614
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
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-54261 is a medium vulnerability (CVSS 6.5) 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.34%, the 27th 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