CVE-2023-37897
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 81 - wyżej niż 81% wszystkich znanych CVE
Streszczenie
Grav, platforma webowa oparta na plikach w PHP, jest podatna na atak typu server side template injection (SSTI). Wersja 1.7.42 i nowsze mają błąd w funkcji `isDangerousFunction()`, co pozwala na wykonanie złośliwego kodu poprzez dodanie podwójnego ukośnika (`\`).
Ocena ryzyka
Atakujący z dostępem do konta administratora lub konta użytkownika z dostępem do panelu administracyjnego może wykorzystać tę podatność do wykonania nieautoryzowanego kodu na serwerze.
Rekomendacja
Zaleca się aktualizację do wersji 1.7.42.2, która zawiera poprawkę dla tej podatności. Brak znanych obejść dla tego problemu.
Inne podatności w Grav
Zobacz wszystkie- CVE-2026-109326Wysokie
Grav przed wersją 2.1.7 zawiera podatność ujawniania informacji, ponieważ dołączone konfiguracje nginx, lighttpd, IIS i Caddy 2 blokują .git tylko w katalogu głównym dokumentu. Nieuwierzytelnieni atakujący mogą żądać zagnieżdżonych repozytoriów, takich jak user/.git, aby pobrać konfigurację Git, refs i obiekty, odtwarzając nieopublikowaną historię lub ujawnione sekrety.
- CVE-2026-100668Średnie
Grav 2.0.0 do 2.0.24 zawiera lukę w sandboxie Twig, która pozwala na ominięcie zabezpieczeń. Filtr `array` jest dozwolony w sandboxie, ale nie sprawdza listy dozwolonych metod, co umożliwia odczytanie prywatnych danych kontenera DI, w tym pełnej konfiguracji z sekretami (hasła, klucze OAuth, SMTP, Redis, proxy).
- 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.
- CVE-2026-109325Wysokie
Grav od wersji 2.0.22 przed 2.1.7 zawiera podatność obejścia uwierzytelnienia w profilerze Clockwork, który ufa wartościom REMOTE_ADDR z pętli zwrotnej. Nieuwierzytelnieni atakujący za pośrednictwem proxy HTTP na tym samym hoście mogą odczytać rekordy profilera ujawniające konfigurację systemu i wtyczek, sekrety, metadane żądań i zapytania.
- CVE-2026-109324Średnie
Grav przed 2.1.7 zawiera podatność na odmowę usługi, która pozwala uwierzytelnionym autorom mediów wyczerpać pamięć poprzez przesyłanie skompresowanych, zbyt dużych obrazów rastrowych. Atakujący mogą odwołać się do transformacji Twig lub Markdown, aby GD lub Imagick zdekodowały pełne źródło bez sprawdzania wymiarów, co pozwala anonimowym żądaniom wielokrotnie powodować niedostępność strony.
Oryginalny opis (angielski, źródło NVD)
Grav is a file-based Web-platform built in PHP. Grav is subject to a server side template injection (SSTI) vulnerability. The fix for another SSTI vulnerability using `|map`, `|filter` and `|reduce` twigs implemented in the commit `71bbed1` introduces bypass of the denylist due to incorrect return value from `isDangerousFunction()`, which allows to execute the payload prepending double backslash (`\\`). The `isDangerousFunction()` check in version 1.7.42 and onwards retuns `false` value instead of `true` when the `\` symbol is found in the `$name`. This vulnerability can be exploited if the attacker has access to: 1. an Administrator account, or 2. a non-administrator, user account that has Admin panel access and Create/Update page permissions. A fix for this vulnerability has been introduced in commit `b4c6210` and is included in release version `1.7.42.2`. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

