CVE-2026-70376
KrytyczneCVSS 9.6Streszczenie
Panel administracyjny Pluck CMS opiera się wyłącznie na porównaniu nagłówka Referer (requestedByTheSameDomain() w data/inc/functions.admin.php, kontrolującym każdą akcję admin.php) jako ochronie CSRF, bez żadnego tokenu anty-CSRF w obszarze administracyjnym. Gdy żądanie nie zawiera informacji Referer/Host, funkcja w gałęzi elseif zwraca true, traktując żądanie jako pochodzące z tej samej domeny. Ponieważ atakująca strona może stłumić nagłówek Referer (np. przez <meta name=referrer content=no-referrer>), może zmusić przeglądarkę zalogowanego administratora do wysyłania sfałszowanych akcji administracyjnych bez ważnego Referer, w tym tworzenia stron z surowym HTML (stored XSS przez wyrenderowaną stronę) oraz instalowania modułów PHP/motywów (zdalne wykonanie kodu).
Ocena ryzyka
Brak solidnej ochrony CSRF umożliwia atakującemu wykonanie nieautoryzowanych akcji administracyjnych, co może prowadzić do przejęcia kontroli nad CMS-em, wstrzyknięcia złośliwego kodu i zdalnego wykonania kodu.
Rekomendacja
Wdróż mechanizmy ochrony CSRF oparte na tokenach dla wszystkich akcji administracyjnych. Dodatkowo rozważ walidację pochodzenia żądań (Origin) i stosowanie nagłówków bezpieczeństwa.
Oryginalny opis (angielski, źródło NVD)
Pluck CMS's admin panel relies solely on a Referer-header comparison (requestedByTheSameDomain() in data/inc/functions.admin.php, gating every admin.php action) for CSRF protection, with no per-request anti-CSRF token anywhere in the admin area. When a request carries no Referer/Host information, the function's elseif branch returns true, treating the request as same-origin. Because a cross-site attacker page can suppress the Referer header (e.g. via <meta name=referrer content=no-referrer>), it can force an authenticated administrator's browser to submit forged admin actions with no valid Referer, including creating pages with raw HTML (stored XSS via the rendered page) and installing PHP modules/themes (remote code execution).

