CVE-2026-54181
ŚrednieCVSS 5.4Streszczenie
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.
Ocena ryzyka
Może dojść do przejęcia sesji użytkownika, w tym administratora, poprzez wykonanie złośliwego skryptu w jego przeglądarce. Wykorzystanie wymaga prawa zapisu do przechowywanej wartości koloru oraz ofiary przeglądającej listę.
Rekomendacja
Zaktualizuj backpack/crud do wersji 6.8.14 lub 7.0.38. Do czasu aktualizacji rozważ ograniczenie możliwości zapisu wartości kolumn koloru do zaufanych użytkowników.
Inne podatności w backpack/crud
Zobacz wszystkie- CVE-2026-57570Średnie
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.
- 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-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.14 and 7.0.38, src/resources/views/crud/columns/color.blade.php inverts the escaped and raw rendering branches controlled by $column['escaped'], which defaults to true, causing $column['text'] to be rendered unescaped by default. An attacker who can store an unsanitized value in a color column can execute script in the browser of a user who views the CRUD list, including an administrator, with access to the victim's session-backed application capabilities. Exploitation requires write access to the stored color value and a victim viewing the list. This issue is fixed in versions 6.8.14 and 7.0.38.

