CVE-2026-72698
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 15 - wyżej niż 15% wszystkich znanych CVE
Streszczenie
Grav CMS przed wersją 2.0.16 nie filtruje tablic konfiguracyjnych systemu, witryny i motywu w piaskownicy renderowania Twig, co pozwala edytorom treści na odczyt wrażliwych wartości konfiguracyjnych. Atakujący z uprawnieniami do edycji treści strony mogą uzyskać dostęp do surowych tablic konfiguracyjnych, w tym sekretów takich jak dane uwierzytelniające do pamięci podręcznej, używając notacji kropkowej w szablonach Twig, omijając ograniczenia config_denied_paths.
Ocena ryzyka
Ujawnienie wrażliwych danych konfiguracyjnych, w tym sekretów, może prowadzić do dalszych ataków, takich jak przejęcie kont lub dostęp do wewnętrznych systemów.
Rekomendacja
Zaktualizuj Grav CMS do wersji 2.0.16 lub nowszej, która zawiera poprawkę filtrowania tablic konfiguracyjnych w renderowaniu Twig.
Inne podatności w Grav CMS
Zobacz wszystkie- CVE-2026-72827Wysokie
Grav CMS przed wersją 2.0.13 zawiera podatność na wstrzyknięcie szablonów po stronie serwera w parametrach akcji e-mail, która pozwala edytorom stron o niskich uprawnieniach na wykonywanie dowolnych poleceń systemu operacyjnego. Atakujący mogą wstrzyknąć ładunki Twig przy użyciu niezabezpieczonego filtra find w polach tematu, treści, do lub od wiadomości e-mail, aby osiągnąć zdalne wykonanie kodu podczas przesyłania formularzy.
- CVE-2026-72819Wysokie
Grav CMS przed wersją 2.0.13 zawiera podatność zdalnego wykonania kodu w walidacji ustawień wtyczki Flex Objects. Uwierzytelniony użytkownik może przesłać plik ZIP zawierający kod PHP, omijając walidację nazw za pomocą notacji tablicowej, i umieścić pliki PHP w katalogu głównym serwera, co prowadzi do ich wykonania.
- CVE-2026-69088Wysokie
W Grav CMS w wersjach 2.0.7 do 2.0.10 wykryto podatność polegającą na braku walidacji w pełni kwalifikowanych wywołań metod statycznych (Class::method) w dyrektywach dynamicznych blueprintów. Funkcja Blueprint::isSafeDynamicCall() stosuje listę blokowanych wywołań tylko do ciągów niezawierających '::'. Osoba z uprawnieniami edytora stron (admin.pages) może umieścić dyrektywę w frontmatterze strony, która wywołuje dowolną publiczną statyczną metodę PHP z kontrolowanymi argumentami. Możliwe jest odczytanie dowolnych plików i tworzenie/kopiowanie plików i katalogów.
- CVE-2026-56700Krytyczne
Grav CMS przed wersją 2.0.0-beta.2 zawiera wiele podatności umożliwiających wykonanie kodu. Trzy niebezpieczne wywołania unserialize() w komponentach Scheduler\JobQueue, Framework\Cache\Adapter\FileCache oraz Session deserializują niezaufane dane bez ograniczeń klas, co pozwala na wstrzyknięcie obiektów PHP i, poprzez łańcuch gadżetów, na zdalne wykonanie kodu. Dodatkowo, polecenie git clone w InstallCommand nie zabezpiecza parametrów branch, url i path, co umożliwia wstrzyknięcie poleceń systemowych podczas instalacji wtyczek/motywów (wymaga dostępu administratora). Występuje również obejście bloklisty Twig (wstrzyknięcie szablonów po stronie serwera).
- CVE-2023-34448Wysokie
Grav to system zarządzania treścią oparty na plikach. W wersjach przed 1.7.42 istniała podatność na wstrzykiwanie szablonów po stronie serwera, która umożliwiała zdalne wykonanie kodu poprzez nieblokowanie niektórych funkcji wbudowanych w rozszerzenie Twig.
- CVE-2023-34251Krytyczne
Grav to system zarządzania treścią oparty na plikach. Wersje przed 1.7.42 są podatne na wstrzykiwanie szablonów po stronie serwera, co umożliwia zdalne wykonanie kodu przez użytkownika z uprawnieniami do edycji stron.
- CVE-2026-72702Średnie
Grav CMS przed wersją 2.0.16 zawiera podatność na obejście walidacji pochodzenia w metodach Uri::referrer() i Pages::referrerRoute(), które sprawdzają nagłówek Referer za pomocą niezakotwiczonego dopasowania prefiksu (str_starts_with) bez ogranicznika końcowego. Atakujący kontrolujący domenę zaczynającą się od pochodzenia ofiary (np. https://example.com.attacker.tld) może wysłać żądanie z takim Refererem, które będzie traktowane jako pochodzące z tego samego pochodzenia, omijając kontrolę opartą na Refererze.
- CVE-2026-72701Niskie
Grav CMS przed wersją 2.0.16 ma podatność czasową w funkcji Utils::verifyNonce(), która używa porównania nie w stałym czasie (operator ===) zamiast hash_equals() do walidacji nonce CSRF. Atakujący mogą mierzyć różnice czasu odpowiedzi, aby odzyskać prawidłowe nonce bajt po bajcie.
- CVE-2026-72697Średnie
Grav CMS przed wersją 2.0.16 zawiera podatność na przechodzenie poza katalog (path traversal) w funkcji Twig media_directory(), która nie waliduje ścieżek systemu plików, co pozwala uwierzytelnionym użytkownikom na enumerację i dostęp do plików poza zamierzonym zakresem. Atakujący z uprawnieniami do tworzenia stron mogą podać dowolne ścieżki systemu plików do media_directory() i użyć dozwolonego akcesora ścieżek na obiektach Medium do odczytu zawartości dowolnych plików pasujących do skonfigurowanych rozszerzeń mediów, do których proces serwera WWW ma dostęp.
- CVE-2026-72696Wysokie
Grav CMS przed wersją 2.0.16 zawiera podatność na podążanie za dowiązaniami symbolicznymi w Scheduler Job::createLockFile(), która pozwala lokalnym atakującym na nadpisanie dowolnych plików poprzez wcześniejsze utworzenie dowiązań symbolicznych w przewidywalnych ścieżkach plików blokady w katalogu tymczasowym z prawem zapisu dla wszystkich. Atakujący mogą umieścić dowiązanie symboliczne w przewidywalnej ścieżce blokady wskazujące na dowolny plik, do którego proces serwera WWW może zapisywać, a następne uruchomienie zaplanowanego zadania podąży za dowiązaniem i nadpisze zawartość docelowego pliku ciągiem identyfikatora zadania.
Oryginalny opis (angielski, źródło NVD)
Grav CMS before 2.0.16 fails to filter system, site, and theme configuration arrays in sandboxed Twig renders, allowing content editors to read sensitive configuration values. Attackers with page-content edit access can access raw configuration arrays including secrets like cache credentials by using dot notation in Twig templates, bypassing the config_denied_paths restrictions.

