CVE-2026-75834
ŚrednieCVSS 5.4Streszczenie
Grav przed wersją 2.0.14 zawiera podatność na przechowywany cross-site scripting w funkcji Security::detectXss() (system/src/Grav/Common/Security.php). Wszystkie wzorce wykrywania XSS używają modyfikatora PCRE /u (UTF-8), więc pojedynczy nieprawidłowy bajt UTF-8 w treści strony powoduje, że preg_match() zwraca false dla każdego wzorca, po cichu omijając bramkę bezpieczeństwa XSS przy zapisie (Validation::checkSafety()). Uwierzytelniony atakujący z uprawnieniami do edycji stron (bez uprawnienia security.xss_whitelist) może przechowywać złośliwy JavaScript, który wykonuje się w przeglądarce odwiedzającego daną stronę.
Ocena ryzyka
Ryzyko polega na możliwości wykonania złośliwego skryptu w przeglądarce odwiedzających, co może prowadzić do kradzieży danych, przejęcia sesji lub innych ataków. Podatność może być wykorzystana przez użytkowników z uprawnieniami do edycji stron.
Rekomendacja
Zaleca się aktualizację Grav do wersji 2.0.14 lub nowszej, która zawiera poprawkę. Należy również rozważyć dodatkowe zabezpieczenia, takie jak walidacja UTF-8 przed sprawdzaniem XSS.
Oryginalny opis (angielski, źródło NVD)
Grav before 2.0.14 contains a stored cross-site scripting vulnerability in the Security::detectXss() function (system/src/Grav/Common/Security.php). All XSS detection patterns use the PCRE /u (UTF-8) modifier, so a single invalid UTF-8 byte anywhere in page content causes preg_match() to return false for every pattern, silently bypassing the save-time XSS safety gate (Validation::checkSafety()). An authenticated attacker with page-edit permissions (without the security.xss_whitelist privilege) can store malicious JavaScript that executes in the browser of a visitor who views the affected page.

