Katalog CVE

CVE-2026-65896

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.48%

Percentyl 39 - wyżej niż 39% wszystkich znanych CVE

Streszczenie

Grav API Plugin przed wersją 1.0.10 nieprawidłowo waliduje pole slug w endpointcie POST /pages/{route}/move. Metoda PagesController::move() oczyszcza slug tylko za pomocą ltrim($body['slug'], '.'), co usuwa początkowe kropki, ale nie neutralizuje segmentów '/' ani '..'. Uwierzytelniony wywołujący API z uprawnieniami api.pages.write może podać sekwencję path traversal (np. 01.home/../../../pwned), aby przenieść cały katalog strony (treść i multimedia) do dowolnej lokalizacji z możliwością zapisu poza user/pages/, w tym poza instalacją Grav.

Ocena ryzyka

Ryzyko przeniesienia plików poza docelową lokalizację, co może prowadzić do wycieku danych lub umożliwienia wykonania złośliwego kodu.

Rekomendacja

Zaktualizuj Grav API Plugin do wersji 1.0.10 lub nowszej.

Inne podatności w Grav API Plugin

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

Grav API Plugin (Composer package getgrav/grav-plugin-api) before 1.0.10 fails to properly validate the slug field in the POST /pages/{route}/move endpoint. PagesController::move() sanitizes the slug only with ltrim($body['slug'], '.'), which strips leading periods but does not neutralize '/' or '..' segments. An authenticated API caller with the api.pages.write permission can supply path traversal sequences (e.g., 01.home/../../../pwned) to move an entire page directory (content and media) to an arbitrary writable location outside user/pages/, including outside the Grav installation.

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