CVE-2026-100670
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Nieautoryzowana eskalacja do super-admina daje pełną kontrolę nad konfiguracją, instalacją wtyczek i motywów, menedżerem plików oraz wszystkimi kontami.
Rekomendacja
Zaktualizuj Grav CMS do wersji 2.0.25 lub nowszej, która usuwa klucze kropkowe z niedostępnych ścieżek.
Inne podatności w Grav CMS
Zobacz wszystkie- 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-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.
Oryginalny opis (angielski, źródło NVD)
Grav CMS 2.0.14 through 2.0.24 contains a privilege escalation vulnerability in the group and account blueprints. The access map is gated by a `security@: admin.super` guard that is resolved by the field's exact path, so a submitted flat dot-notation key such as `access.admin.super` (instead of the nested `access[admin][super]`) matches no blueprint rule, survives BlueprintSchema::filterArray() and flattening, and is written by FlexObject::update() via setNestedProperty(), which splits on `.` and reconstructs the nested value. An authenticated backend operator using the flex accounts backend who holds admin.users but not admin.super can therefore grant admin.super to their own account or to a group they belong to and escalate to full super-admin, gaining control over configuration, plugin and theme installation, the file manager, and all accounts. Fixed in 2.0.25, which drops any dotted key whose ancestor path is disabled or marked validate.ignore.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

