Craft CMS has a potential information disclosure vulnerability in preview tokens
Summary
Craft CMS has a CSRF issue in the preview token endpoint at /actions/preview/create-token. The endpoint accepts an attacker-supplied previewToken.
Because the action does not require POST and does not enforce a CSRF token, an attacker can force a logged-in victim editor to mint a preview token chosen by the attacker.
That token can then be used by the attacker (without authentication) to access previewed/unpublished content tied to the victim’s authorized preview scope.
Preconditions
- Victim is logged in to Craft control panel.
- Victim has active preview authorization in session for target content (e.g., opened/edited an entry).
- The attacker must know the target’s
canonicalIdand public URL path of that entry.
1) Attacker prepares a fixed token
Use any 32-character value, for example:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2) CSRF victim into minting that token
Send the victim a link (or top-level redirect) such as:
https://TARGET/actions/preview/create-token?elementType=craft%5Celements%5CEntry&canonicalId=123&siteId=1&previewToken=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&redirect=https%3A%2F%2FTARGET%2F
If the victim is logged in and authorized for previewElement:123, Craft creates that exact token.
3) Attacker accesses preview content unauthenticated
curl -i 'https://TARGET/news/known-entry-slug?token=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
Expected vulnerable behavior:
- Response renders preview/unpublished state (draft/provisional context), not just normal public content.
Impact
- CSRF-based minting of attacker-known preview tokens.
- Unauthorized access to draft/provisional/revision content via token replay.
- Stealthy one-click exploitation against logged-in editors/admins.
- No dependency on forwarded-host poisoning.
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Paczka Composer | craftcms/cms | >= 4.0.0-RC1, < 4.17.3, >= 5.0.0-RC1, < 5.9.7 | 4.17.3, 5.9.7 |
Odnośniki
- Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X- Słabość (CWE)
CWE-287, CWE-352- Platforma
- Composer
- Paczka
craftcms/cms- Ujawniono
- 10.03.2026
- Aktualizacja
- 11.10.2026 10:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-vg3j-hpm9-8v5v - CC BY 4.0
Historia podatności: craftcms/cms
Wszystkie opisane podatności tej paczki (Paczka Composer), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 127
- Pierwsza → ostatnia
- 07.2021 08.2026
- Bez poprawki
- 6
- Wykorzystywana w atakach
- 4
Rozkład istotności
- Krytyczna 9
- Wysoka 41
- Średnia 65
- Niska 12
Ujawnienia w latach
- 2021: 3
- 2022: 22
- 2023: 13
- 2024: 9
- 2025: 6
- 2026: 74
-
Craft CMS has a potential information disclosure vulnerability in preview tokens ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.