CVE-2026-79991
WysokieCVSS 7.1Streszczenie
Podatność w Craft CMS, gdzie resolwery mutacji GraphQL (saveEntry, deleteEntry) odczytują siteId bezpośrednio z argumentów, bez wywołania ArgumentManager::prepareArguments(), co omija filtrowanie zakresu witryny. Atakujący z tokenem ograniczonym do witryny A może tworzyć, modyfikować lub usuwać wpisy w witrynie B.
Ocena ryzyka
Atakujący może uzyskać nieautoryzowany dostęp do wpisów w innych witrynach, co prowadzi do naruszenia integralności danych i potencjalnego wycieku informacji.
Rekomendacja
Zaktualizuj Craft CMS do wersji z poprawką. Ogranicz uprawnienia tokenów GraphQL i monitoruj aktywność mutacji.
Inne podatności w Craft CMS
Zobacz wszystkie- CVE-2026-79990Wysokie
Podatność w Craft CMS, gdzie resolwery mutacji GraphQL (saveEntry, deleteEntry) odczytują siteId bezpośrednio z argumentów, bez wywołania ArgumentManager::prepareArguments(), co omija filtrowanie zakresu witryny. Atakujący z tokenem ograniczonym do witryny A może tworzyć, modyfikować lub usuwać wpisy w witrynie B.
- CVE-2026-84802Średnie
Craft CMS w wersjach od 5.7.0 do przed 5.10.12 zawiera podatność na ujawnienie informacji w AssetsController::actionMoveInfo, która nie egzekwuje uprawnień do woluminów. Uwierzytelnieni użytkownicy panelu sterowania mogą wysyłać żądania POST do punktu końcowego assets/move-info z dowolnymi folderIds, aby uzyskać liczbę zasobów i całkowity rozmiar przechowywania dla woluminów, do których nie mają dostępu.
- CVE-2026-84801Wysokie
Craft CMS przed wersją 5.10.11 nie weryfikuje statusu administratora w punkcie końcowym actionGetPasswordResetUrl, co pozwala użytkownikom niebędącym administratorami z uprawnieniem administrateUsers na generowanie linków resetowania hasła dla kont administratorów. Atakujący może ustawić nowe hasło dla administratora i przejąć panel kontrolny.
- CVE-2026-84800Wysokie
Craft CMS w wersjach od 5.0.0-RC1 do 5.10.11 zawiera brak autoryzacji w AssetsController::actionReplaceFile. Gdy żądanie podaje sourceAssetId i targetFilename bez assetId, uprawnienie replacePeerFiles nie jest egzekwowane, co pozwala autoryzowanemu autorowi z uprawnieniem replaceFiles na nadpisanie plików innych użytkowników w tym samym folderze.
- CVE-2026-84799Średnie
Craft CMS przed wersją 5.11.0 nie egzekwuje filtrów zakresu grup użytkowników na natywnych relacjach GraphQL użytkowników, w tym pól author, authors, uploader, draftCreator i revisionCreator. Atakujący z tokenem GraphQL o ograniczonym zakresie mogą odpytywać te relacje, aby odczytać nazwy użytkowników, adresy e-mail i pełne nazwy dowolnego autora lub przesyłającego treści, w tym administratorów.
- CVE-2026-84798Wysokie
Craft CMS w wersjach od 5.0.0-RC1 do 5.10.11 nie wykonuje niezależnej kontroli autoryzacji w ElementsController::actionDeleteForSite. Metoda sprawdza uprawnienia tylko dla własnego szkicu użytkownika, a następnie usuwa kanoniczny element bez ponownej weryfikacji, co pozwala uwierzytelnionemu użytkownikowi bez uprawnienia deleteEntriesForSite na trwałe usunięcie wpisów.
- CVE-2026-84797Średnie
Craft CMS przed wersją 5.10.11 zawiera podatność na obejście autoryzacji w ElementsController::actionDuplicate(), która pozwala uwierzytelnionym użytkownikom z uprawnieniem createEntries na usuwanie cudzych wstępnych wersji roboczych. Atakujący mogą wykorzystać parametr deleteProvisionalDraft, aby usunąć niezapisany szkic innego użytkownika bez odpowiednich kontroli autoryzacji, uzyskując dostęp do treści w trakcie tworzenia.
- CVE-2026-84796Wysokie
Craft CMS przed wersją 5.10.11 zawiera podatność obejścia zakresu witryny w resolverach mutacji GraphQL, które nie weryfikują siteId przez ArgumentManager::prepareArguments(). Atakujący z tokenami ograniczonymi do jednej witryny mogą czytać, modyfikować lub usuwać wpisy w innych witrynach.
- CVE-2026-84794Wysokie
Craft CMS przed wersją 5.10.11 nie sprawdza autoryzacji w punkcie końcowym assets/move-asset, gdy podano force=1. Uwierzytelnieni użytkownicy bez uprawnień do zasobów innych użytkowników mogą przenosić własne zasoby do folderów innych użytkowników i wymuszać usuwanie konfliktowych plików.
- CVE-2026-84793Średnie
Craft CMS w wersjach od 5.0.0-RC1 do przed 5.10.11 zawiera podatność na trwały cross-site scripting w polu nazwy witryny, które nie oczyszcza danych wejściowych. Administratorzy mogą wstrzykiwać dowolne skrypty JavaScript w nazwie witryny, które wykonują się, gdy inni użytkownicy przeglądają strony ustawień panelu sterowania.
Oryginalny opis (angielski, źródło NVD)
Craft CMS GraphQL entry mutation resolvers (saveEntry, deleteEntry) read siteIddirectly from$argumentswithout passing throughArgumentManagerprepareArguments(), which is the function that enforces site-scope filtering via array_intersect against the GraphQL schema’s allowed sites. The query path (ElementResolverprepareElementQuery) correctly calls prepareArguments()`, so queries to unauthorized sites return empty. But mutations bypass this entirely — an attacker with a token scoped to Site A can create, modify, or delete entries in Site B by passing siteId in the mutations argument.

