CVE-2026-86195
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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ą.
Ocena ryzyka
Ryzyko obejmuje eskalację uprawnień do super-admina, co prowadzi do pełnej kompromitacji systemu Grav.
Rekomendacja
Zaleca się natychmiastową aktualizację grav-plugin-api do wersji 1.0.20 lub nowszej oraz przegląd uprawnień menedżerów.
Inne podatności w grav-plugin-api
Zobacz wszystkie- 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-75830Wysokie
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.
- 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 versions before 1.0.20 contain a privilege escalation vulnerability in the InvitationsController where the stripSuperFlags() method only removes nested super flags but fails to strip dot-keyed equivalents like api.super. A non-super user manager with api.access and api.users.write permissions can create an invitation with a dot-keyed super flag in the access payload that bypasses the guard and persists to the new account. Attackers can accept the invitation through the public endpoint without real invitee interaction to create a super-admin account and immediately receive a valid JWT for full site control.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

