Podatności Grav CMS
21 znanych podatności CVE w Grav CMS, przetłumaczonych i ocenionych.
- 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-78851Średnie
Podatność typu Directory Traversal w Grav CMS w wersjach od 2.0.3 do 2.0.6 pozwala zdalnemu atakującemu uzyskać dostęp do poufnych informacji poprzez plik GravExtension.php i metodę mediaDirFunc.
- CVE-2026-100670Wysokie
Grav CMS 2.0.14 do 2.0.24 zawiera podatność na eskalację uprawnień w blueprintach grup i kont. Klucze kropkowe, takie jak `access.admin.super`, omijają zabezpieczenia i pozwalają operatorowi z uprawnieniami admin.users na nadanie sobie pełnych uprawnień super-admina.
- 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-72698Średnie
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.
- 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.
- 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-69089Wysokie
W Grav CMS w wersji 2.0.10 wykryto podatność path traversal w metodzie ImageMedium::watermark(). Funkcja przekazuje niesanitowany argument $image do UniformResourceLocator::findResource(), który tylko leksykalnie usuwa segmenty '..' bez sprawdzania rzeczywistej ścieżki. Edytor z uprawnieniami do tworzenia treści może użyć składni Markdown z sekwencjami nawigacji, aby wkomponować dowolne pliki graficzne spoza sandboksa mediów do obrazu nośnego, który jest następnie serwowany publicznie.
- 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-57852Średnie
Wtyczka scheduler-webhook w Grav CMS zawiera lukę umożliwiającą ominięcie uwierzytelniania. Niezalogowany atakujący może zdalnie uruchomić skonfigurowane zadania harmonogramu, wysyłając pojedyncze żądanie POST do endpointu webhooka.
- CVE-2026-7317Średnie
W Grav CMS do wersji 1.7.49.5/2.0.0-beta.1 znaleziono podatność w funkcji FileCache::doGet w komponencie Cache Value Handler, która prowadzi do deserializacji. Atak może być przeprowadzony zdalnie, ale wymaga wysokiego poziomu złożoności i jest trudny do wykorzystania. Exploit został opublikowany. Aktualizacja do wersji 2.0.0-beta.2 rozwiązuje problem.
- CVE-2025-66306Średnie
Grav to platforma webowa oparta na plikach. W wersjach przed 1.8.0-beta.27 występuje podatność IDOR (Insecure Direct Object Reference) w panelu administracyjnym Grav CMS, która pozwala użytkownikom o niskich uprawnieniach na dostęp do poufnych informacji z innych kont. Choć bezpośrednie przejęcie konta nie jest możliwe, mogą zostać ujawnione adresy e-mail administratorów i inne metadane.
- CVE-2025-66302Średnie
Grav to platforma webowa oparta na plikach. W wersjach przed 1.8.0-beta.27 występuje podatność typu path traversal w narzędziu do tworzenia kopii zapasowych, która pozwala uwierzytelnionym atakującym z uprawnieniami administracyjnymi na odczyt dowolnych plików w systemie plików serwera. Luka wynika z niewystarczającej sanityzacji danych wejściowych, gdzie ścieżki podane przez użytkownika nie są odpowiednio ograniczane.
- CVE-2025-66299Wysokie
Grav CMS przed wersją 1.8.0-beta.27 jest podatny na wstrzyknięcie szablonu po stronie serwera (SSTI), co pozwala uwierzytelnionemu użytkownikowi z uprawnieniami edytora na wykonanie dowolnego kodu na zdalnym serwerze, omijając istniejącą piaskownicę bezpieczeństwa. Ponieważ piaskownica nie chroni w pełni obiektu Twig, możliwe jest wchodzenie z nim w interakcję (np. wywoływanie metod, odczyt/zapis atrybutów) poprzez złośliwie spreparowane dyrektywy szablonu Twig wstrzyknięte do strony internetowej. Pozwala to uwierzytelnionemu edytorowi na dodanie dowolnych funkcji do systemu atrybutów Twig safe_filters, skutecznie omijając piaskownicę Grav CMS. Podatność została naprawiona w wersji 1.8.0-beta.27.
- CVE-2025-66297Wysokie
Grav to platforma webowa oparta na plikach. W wersjach przed 1.8.0-beta.27 użytkownik z dostępem do panelu administracyjnego i uprawnieniami do tworzenia lub edycji stron w Grav CMS może włączyć przetwarzanie Twig w frontmatterze strony. Poprzez wstrzyknięcie złośliwych wyrażeń Twig użytkownik może eskalować swoje uprawnienia do administratora lub wykonać dowolne polecenia systemowe poprzez API schedulera. Prowadzi to do eskalacji uprawnień (PE) i zdalnego wykonania kodu (RCE).
- CVE-2023-34253Wysokie
Grav to system zarządzania treścią oparty na plikach. W wersjach przed 1.7.42 lista zakazanych funkcji była niewystarczająca, co umożliwiało atakującym z niskimi uprawnieniami wstrzykiwanie złośliwych szablonów i uzyskanie zdalnego wykonania kodu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

