CVE-2026-54179
ŚrednieCVSS 4.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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ń.
Ocena ryzyka
Ryzyko przechowywanego XSS lub innych niepożądanych działań, gdy plik jest serwowany i dostępny.
Rekomendacja
Zaktualizuj backpack/crud do wersji 7.0.38 lub 6.8.14, które zawierają poprawkę.
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-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-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.37, the src/app/Library/Uploaders/SingleBase64Image.php methods SingleBase64Image::uploadFiles and SingleBase64Image::uploadRepeatableFiles, used by image fields through withFiles(), accept any data URI beginning with data:image without validating the declared MIME subtype or decoded bytes, while src/app/Library/Uploaders/Support/FileNameGenerator.php method FileNameGenerator::getExtensionFromFile applies mime_content_type() to the data URI instead of the decoded content. An authenticated administrator can therefore store arbitrary file content under an extensionless filename on the configured disk, which can cause stored cross-site scripting or other unintended behavior when the file is served and accessed. This issue is fixed in version 7.0.38 and 6.8.14.

