Katalog CVE

CVE-2026-69088

WysokieCVSS 8.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

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.

Ocena ryzyka

Osoba z ograniczonymi uprawnieniami edytora może odczytać dowolne pliki na serwerze oraz tworzyć lub kopiować pliki i katalogi, co może prowadzić do wycieku danych i eskalacji ataku. Wyniki są udostępniane anonimowym odwiedzającym.

Rekomendacja

Należy natychmiast zaktualizować Grav CMS do wersji 2.0.11, która zawiera poprawkę. Do czasu aktualizacji zaleca się ograniczenie uprawnień edytorów i monitorowanie zmian w treściach.

Inne podatności w Grav CMS

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

Grav CMS versions 2.0.7 through 2.0.10 fail to validate fully-qualified static method calls (Class::method) in blueprint dynamic-field directives because Blueprint::isSafeDynamicCall() only applies its dangerous-callable denylist to strings that do not contain '::'. An account with only page-editing rights (admin.pages, not super-admin or admin.pages_twig) can plant a directive in a page's form-field frontmatter that invokes an arbitrary public static PHP method with attacker-controlled arguments. Using built-in gadget methods this allows reading of any server-readable file (disclosed to anonymous visitors of the crafted page) and arbitrary creation/copying of files and directories under the web-server account. Fixed in 2.0.11.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS