CVE-2026-75830
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
grav-plugin-api (getgrav/grav-plugin-api) w wersjach >= 1.0.0-beta.10 i <= 1.0.14 zawiera podatność na przechodzenie po ścieżkach w metodzie PagesController::batchCopy(). Niekompletna poprawka dla GHSA-qjq4-jp55-4mx2 pozostawiła niesprawdzony parametr 'suffix' kontrolowany przez użytkownika (przez POST /api/v1/pages/batch). Uwierzytelniony użytkownik z uprawnieniem api.pages.write (poziom edytora, nie super-admin) może podać sekwencje przechodzenia po ścieżkach (np. /../../../) w parametrze suffix, aby uciec z zamierzonego katalogu user/pages/ i zapisać treść strony oraz media strony kontrolowane przez atakującego w dowolnych lokalizacjach systemu plików zapisywalnych przez proces serwera WWW. Podatność naprawiono w wersji 1.0.15.
Ocena ryzyka
Uwierzytelniony użytkownik z uprawnieniami edytora może zapisać dowolne pliki w systemie, co może prowadzić do naruszenia integralności systemu, wstrzyknięcia złośliwej treści lub eskalacji uprawnień.
Rekomendacja
Zaktualizuj grav-plugin-api do wersji 1.0.15 lub nowszej, która zawiera poprawkę.
Inne podatności w grav-plugin-api
Zobacz wszystkie- CVE-2026-86195Wysokie
grav-plugin-api przed wersją 1.0.20 zawiera podatność eskalacji uprawnień w InvitationsController, gdzie metoda stripSuperFlags() usuwa tylko zagnieżdżone super flagi, ale nie usuwa odpowiedników z kropką, takich jak api.super. Menedżer niebędący super użytkownikiem z uprawnieniami api.access i api.users.write może utworzyć zaproszenie z super flagą z kropką w ładunku dostępu, która omija zabezpieczenia i utrwala się na nowym koncie. Atakujący mogą zaakceptować zaproszenie przez publiczny punkt końcowy bez rzeczywistej interakcji zaproszonego, aby utworzyć konto super-admina i natychmiast otrzymać ważny JWT do pełnej kontroli nad stroną.
- CVE-2026-86193Wysokie
grav-plugin-api przed wersją 1.0.20 nie waliduje uprawnień super odziedziczonych po grupach w zabezpieczeniach zarządzania użytkownikami, co pozwala menedżerom niebędącym super użytkownikami modyfikować konta super-adminów. Atakujący z uprawnieniami api.access i api.users.write mogą zmienić pola hasła na kontach z super uprawnieniami grupowymi, aby uzyskać pełną kontrolę administracyjną.
- CVE-2026-75829Wysokie
Wtyczka grav-plugin-api przed wersją 1.0.15 nie waliduje zawartości Twig w punkcie końcowym translate(), co pozwala atakującym z uprawnieniami api.pages.write na utrwalanie stron z włączonym process.twig. Atakujący mogą przesłać spreparowane parametry header i content, aby wykonać ładunki wstrzyknięcia szablonów po stronie serwera, które są oceniane podczas renderowania.
- CVE-2026-74908Średnie
Grav plugin-api przed wersją 1.0.15 zawiera podatność na wstrzykiwanie skryptów, gdzie sanitizer SVG sprawdza tylko dokładne rozszerzenie 'svg', pozwalając plikom .svgz i .xhtml ominąć sanityzację i być przechowywanym bez oczyszczenia. Atakujący z uprawnieniami api.media.write mogą przesyłać pliki zawierające wykonywalne ładunki skryptów, które wykonują się w originie witryny, gdy są dostępne przez administratorów lub odwiedzających.
- CVE-2026-72828Wysokie
Grav Plugin API (getgrav/grav-plugin-api) przed wersją 1.0.13 nie egzekwuje limitów zakresu kluczy API w InvitationsController. Decyzje strip-super i accept-groups są oparte na zwykłym sprawdzeniu isSuperAdmin() zamiast sprawdzenia uprawnień uwzględniającego zakres, więc klucz API o najmniejszych uprawnieniach (zakres api.users.write) wygenerowany na koncie super może utworzyć rekord zaproszenia zawierający flagi dostępu super-admina. Po zaakceptowaniu zaproszenia te flagi są zapisywane dosłownie na nowym koncie, co prowadzi do eskalacji uprawnień do w pełni kontrolowanego konta super.
Oryginalny opis (angielski, źródło NVD)
grav-plugin-api (getgrav/grav-plugin-api) versions >= 1.0.0-beta.10 and <= 1.0.14 contain a path traversal vulnerability in the PagesController::batchCopy() method. An incomplete fix for GHSA-qjq4-jp55-4mx2 left the user-controlled 'suffix' parameter (via POST /api/v1/pages/batch) unvalidated. An authenticated user with the api.pages.write permission (editor-level, not super-admin) can supply path traversal sequences (e.g. /../../../) in the suffix parameter to escape the intended user/pages/ directory and write attacker-controlled page content and page media to arbitrary filesystem locations writable by the web server process. The vulnerability is fixed in 1.0.15.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

