CVE-2025-64059
NiskieCVSS 1.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
Grav 1.7.50.2 pozwala administratorom na wprowadzanie kodu JavaScript poprzez edytor strony głównej. Znaczenie tej podatności dla trwałego XSS jest kwestionowane, ponieważ administratorzy mają już prawo do modyfikacji szablonów, instalacji wtyczek i przesyłania innej wykonywalnej zawartości.
Ocena ryzyka
Ryzyko jest ograniczone, ponieważ wymaga uprawnień administratora, które i tak pozwalają na wykonywanie kodu. W środowiskach, gdzie uprawnienia administracyjne są szeroko przyznawane, może to jednak prowadzić do nadużyć.
Rekomendacja
Należy rozważyć aktualizację Grav do nowszej wersji oraz ograniczyć liczbę kont z uprawnieniami administratora. Zaleca się również audyt zawartości edytowanej przez administratorów.
Inne podatności w Grav
Zobacz wszystkie- CVE-2026-61455Średnie
Grav przed wersją 2.0.1 zawiera podatność na bombę dekompresyjną w metodzie ZipArchiver::extract(), która nie ogranicza rozmiaru po dekompresji, liczby plików ani głębokości zagnieżdżenia. Atakujący może dostarczyć spreparowane archiwum ZIP, które po rozpakowaniu wypełnia całe dostępne miejsce na dysku, powodując odmowę usługi poprzez wyczerpanie zasobów pamięci masowej.
- CVE-2026-61450Średnie
Grav przed wersją 2.0.2 zawiera obejście sandboksa Twig, które pozwala autorowi strony (każdemu użytkownikowi z uprawnieniami admin.pages lub osobie mogącej pisać do katalogu user/pages) na wyciek sekretów konfiguracyjnych. Mimo że sandboks zastępuje zmienną 'config' okrojoną fasadą i usuwa metody Config::get/toArray z listy dozwolonych, surowy kontener pozostaje dostępny przez dozwoloną metodę grav.offsetGet('config'), która zwraca oryginalny obiekt Config. Dozwolone filtry dumpowania obiektów (json_encode, print_r, yaml_encode) serializują ten obiekt na poziomie PHP bez wywoływania bramki metod sandboksa, ujawniając pełne drzewo konfiguracji, w tym sekrety wtyczek, takie jak dane uwierzytelniające SMTP, klucze API i dane uwierzytelniające bazy danych wtyczek.
- CVE-2026-58657Średnie
Grav przed wersją 2.0.0 (aż do 2.0.0-rc.9 i gałęzi 2.0) zawiera podatność na przechowywane wstrzykiwanie CSS w akcji mediów Markdown image resize(). Wcześniejsze zabezpieczenia odrzucają bezpośrednie ładunki ?style= i niebezpieczne funkcje fallback, ale akcja resize() w Excerpts::processMediaActions() zapisuje wartości kontrolowane przez wywołującego bezpośrednio do atrybutu styleAttributes obrazu. Redaktor treści z niższymi uprawnieniami, który może edytować Markdown strony, może przechowywać spreparowany URL obrazu z deklaracjami CSS oddzielonymi średnikami w parametrach resize, które są renderowane w końcowym atrybucie <img style=...> gdy recenzent/admin z wyższymi uprawnieniami przegląda stronę lub podgląd.
- CVE-2026-56701Średnie
Grav przed wersją 2.0.0-beta.2 zawiera podatność na wstrzykiwanie zewnętrznych jednostek XML (XXE) w procesie przesyłania plików SVG, co pozwala uwierzytelnionym atakującym na odczyt dowolnych plików. Aplikacja używa funkcji simplexml_load_string bez wyłączenia ładowania zewnętrznych jednostek, co umożliwia atakującym wstrzykiwanie ładunków XXE za pomocą złośliwych plików SVG.
- CVE-2026-44738Wysokie
Grav to platforma internetowa oparta na plikach. W wersjach przed 2.0.0-rc.2, lista dozwolonych działań w sandboxie Twig pozwalała każdemu użytkownikowi z rolą admin.pages na wywołanie config.toArray() w treści strony, co skutkowało wyświetleniem całej zintegrowanej konfiguracji witryny, w tym tajemnic pluginów.
- CVE-2026-42611Wysokie
Grav to platforma internetowa oparta na plikach. Przed wersją 2.0.0-beta.2, użytkownik o niskich uprawnieniach mógł wprowadzić element svg, co prowadziło do ataku XSS, który mógł być eskalowany do zrzutu informacji systemowych dostępnych w /admin/config/info, gdy Super Admin odwiedzał stronę.
- CVE-2026-75837Krytyczne
Grav przed wersją 2.0.14 nie zabezpiecza pola access w podstawowym blueprint grupy wymaganym ograniczeniem security@: admin.super. Delegowany operator admin.users może zapisać grupę z access[admin][super]=true, aby eskalować do super-admina, uzyskując możliwości planowania i ewaluacji Twig.
- CVE-2026-65008Krytyczne
Grav 2.0.4 (poprawiony w 2.0.7) zawiera podatność na zdalne wykonanie kodu w funkcji Blueprint::dynamicData(). Funkcja ta przekazuje ciąg znaków wywołania metody klasy i jej argumenty bezpośrednio do call_user_func_array() bez żadnej listy dozwolonych wartości. Ponieważ wtyczka formularza kieruje frontmatter stron przez tę ścieżkę, uwierzytelnione konto z uprawnieniami admin.pages (lub api.pages.write) może umieścić złośliwą dyrektywę wywołania na stronie. Polecenie wykonuje się jako użytkownik serwera WWW, gdy ktokolwiek – w tym nieuwierzytelniony gość – uzyska dostęp do strony.
- CVE-2025-66844Krytyczne
W grav przed wersją 1.7.49.5, wektor SSRF (Server-Side Request Forgery) może być wyzwolony przez szablony Twig, gdy treść strony jest przetwarzana przez Twig, a konfiguracja pozwala na rejestrację niezdefiniowanych funkcji PHP.
- CVE-2025-66301Krytyczne
Grav to platforma webowa oparta na plikach. Przed wersją 1.8.0-beta.27, z powodu niewłaściwych kontroli autoryzacji przy modyfikowaniu krytycznych pól w żądaniu POST do /admin/pages/{page_name}, edytor z uprawnieniami tylko do zmiany podstawowej treści formularza może zmienić działanie formularza poprzez modyfikację zawartości data[_json][header][form], czyli YAML frontmatter, który zawiera sekcję process określającą, co dzieje się po wysłaniu formularza, w tym ważne akcje mogące prowadzić do dalszych podatności. Podatność naprawiona w wersji 1.8.0-beta.27.
Oryginalny opis (angielski, źródło NVD)
Grav 1.7.50.2 allows admins to enter JavaScript via the Home Page editor. NOTE: the relevance of this for stored XSS is disputed because admins are allowed to modify templates, install plugins, and upload other executable content.

