CVE-2026-57570
ŚrednieCVSS 6.5Streszczenie
backpack/crud od wersji 6.0.0 do 6.8.15 oraz 7.0.47 zawiera podatność w obsłudze relacji HasMany i MorphMany przez attachManyRelation podczas operacji tworzenia i aktualizacji CRUD. Podatność pozwala uwierzytelnionemu administratorowi o niskich uprawnieniach na modyfikację niepowiązanych rekordów dziecięcych, w tym ich ponowne przypisanie, odłączenie, wyzerowanie lub usunięcie, nawet poza granicami właściciela lub dzierżawy. Wymaga to, aby rekordy nie powinny być możliwe do przypisania lub usunięcia przez tego administratora oraz braku dodatkowej autoryzacji na poziomie aplikacji.
Ocena ryzyka
Podatność może prowadzić do nieautoryzowanej modyfikacji danych, naruszenia integralności danych oraz potencjalnego naruszenia granic dzierżawy (tenant boundaries), co może mieć poważne konsekwencje dla organizacji.
Rekomendacja
Zaleca się aktualizację backpack/crud do wersji 6.8.15 lub 7.0.47, które zawierają poprawkę, oraz wdrożenie dodatkowej autoryzacji na poziomie aplikacji dla przesyłanych wartości relacji.
Inne podatności w backpack/crud
Zobacz wszystkie- CVE-2026-54182Wysokie
W bibliotece backpack/crud w wersjach przed 4.1.70, 5.6.2, 6.8.13 i 7.0.36 funkcja Backpack\CRUD\Stats::makeCurlRequest buduje polecenie powłoki z adresem URL pochodzącym z nagłówka HTTP Host i przekazuje je do exec() bez odpowiedniej neutralizacji. Nieuwierzytelniony atakujący może wstrzyknąć polecenia systemu operacyjnego, jeśli exec() i curl są dostępne, a losowa bramka 1-na-100 zostanie osiągnięta (powtarzane żądania mogą ją trafić). Udana eksploatacja wykonuje polecenia jako użytkownik serwera WWW.
- CVE-2026-54181Średnie
W backpack/crud od wersji 6.0.0 do 6.8.14 oraz 7.0.38 plik src/resources/views/crud/columns/color.blade.php odwraca gałęzie renderowania escaped i raw kontrolowane przez $column['escaped'], które domyślnie ma wartość true, powodując że $column['text'] jest domyślnie renderowany bez escapowania. Atakujący mogący zapisać nieoczyszczoną wartość w kolumnie koloru może wykonać skrypt w przeglądarce użytkownika przeglądającego listę CRUD, w tym administratora.
- CVE-2026-54180Wysokie
W backpack/crud od wersji 6.0.0 do 6.8.14 i 7.0.38 operacje Update, Delete i Reorder pobierają rekordy z niezawężonego zapytania modelu zamiast z zapytania skonfigurowanego przez addClause() lub addBaseClause(). Uwierzytelniony użytkownik znający lub zgadujący klucz główny rekordu poza zakresem może modyfikować, usuwać lub zmieniać kolejność rekordów ukrytych przez zakresy dostępu na poziomie wiersza.
- CVE-2026-54178Wysokie
W backpack/crud przed 6.8.12 i 7.0.35 funkcja HasUploadFields::uploadMultipleFilesToDisk ufa ścieżkom względnym dysku z clear_<attribute>[] i przekazuje je do Storage::disk()->delete bez potwierdzenia, że ścieżki są zapisane w bieżącym rekordzie modelu. Uwierzytelniony użytkownik z dostępem Update do CRUD korzystającego z tego mutatora może usunąć załącznik innego rekordu, współdzielony zasób lub inny plik operacyjny na skonfigurowanym dysku.
- CVE-2026-54177Średnie
W backpack/crud od wersji 6.0.0 do 6.8.14 oraz 7.0.38 metody HasUploadFields uploadFileToDisk i uploadMultipleFilesToDisk używane przez CrudTrait oraz ścieżka withFiles() przez FileNameGenerator nie odrzucają wewnętrznie plików wykonywalnych przez serwer. Uwierzytelniony administrator może osiągnąć zdalne wykonanie kodu, używając pola CRUD z obsługą uploadu bez walidacji mimes: i mimetypes:, gdy publiczny dysk jest dostępny przez sieć.
- CVE-2026-54176Średnie
W backpack/crud od wersji 6.0.0 do 6.8.14 oraz 7.0.38 endpoint MyAccountController::postAccountInfoForm pod POST /admin/edit-account-info pozwala AccountInfoRequest na aktualizację backpack_authentication_column() (domyślnie email) bez wymagania current_password ani weryfikacji istniejącego hasła. Atakujący z tymczasową uwierzytelnioną sesją Backpack może zmienić email odzyskiwania konta i później użyć resetu hasła.
- CVE-2026-54175Wysokie
W backpack/crud przed 6.8.11 i 7.0.34 funkcja MyAccountController::postAccountInfoForm przekazuje dane żądania z $request->except(['_token']) do modelu użytkownika zamiast ograniczać aktualizacje do pól akceptowanych przez AccountInfoRequest::validationData(). Atakujący z uwierzytelnioną sesją Backpack może masowo przypisać hasło, kolumnę uwierzytelniania lub inne atrybuty fillable.
- CVE-2026-54179Średnie
backpack/crud to pakiet Laravel do tworzenia paneli administracyjnych. Od wersji 6.0.0 do 6.8.14 i 7.0.37, metody SingleBase64Image::uploadFiles i uploadRepeatableFiles akceptują dowolne data URI zaczynające się od data:image bez walidacji typu MIME lub zawartości. Uwierzytelniony administrator może przechowywać dowolne pliki pod nazwą bez rozszerzenia, co może prowadzić do przechowywanego XSS lub innych niepożądanych zachowań.
- CVE-2022-31114Średnie
Podatność na skrypty między witrynami (XSS) w bibliotece backpack/crud dla Laravel. Atakujący może przeprowadzić ukierunkowaną kampanię phishingową, aby nakłonić użytkowników lub administratorów do kliknięcia złośliwego linku, co w bardzo specyficznych okolicznościach może prowadzić do ujawnienia informacji lub uzyskania dostępu administracyjnego.
Oryginalny opis (angielski, źródło NVD)
backpack/crud provides Create, Read, Update & Delete (CRUD) functions for Backpack, a collection of Laravel packages that help users build custom administration panels. From 6.0.0 until 6.8.15 and 7.0.47, HasMany and MorphMany handling through attachManyRelation during CRUD create and update operations accepts submitted child primary keys without consistently restricting updates to records belonging to the current parent or permitted by the developer-defined relation scope. An authenticated low-privilege administrator who can edit a parent form exposing an affected multiple-relation field can cause unrelated child records to be reassigned, detached, nulled, or deleted across ownership or tenant boundaries. Exploitation requires related records that should not be attachable or removable by that administrator and the absence of additional application-level authorization around submitted relation values. This issue is distinct from earlier direct main-entity CRUD scoping fixes because it affects secondary models modified by relationship-saving logic. This issue is fixed in versions 6.8.15 and 7.0.47.

