CVE-2026-86019
ŚrednieCVSS 5.3Streszczenie
Part-DB przed wersją 2.13.2 pozwala uwierzytelnionym użytkownikom API obejść skonfigurowany maksymalny rozmiar załącznika, przesyłając załączniki przez API z danymi pliku zakodowanymi w base64. Aplikacja egzekwuje limit rozmiaru dla zwykłych przesyłań przez przeglądarkę, ale ścieżka API base64 nie stosuje tej samej walidacji. W rezultacie użytkownik z dostępem do API i uprawnieniami do tworzenia załączników może przesłać pliki większe niż limit, potencjalnie wyczerpując miejsce na dysku i powodując odmowę usługi.
Ocena ryzyka
Możliwe jest wyczerpanie przestrzeni dyskowej serwera, co może prowadzić do niedostępności usługi dla wszystkich użytkowników. Wymaga to jednak uwierzytelnionego dostępu do API i uprawnień do tworzenia załączników.
Rekomendacja
Zaktualizuj Part-DB do wersji 2.13.2 lub nowszej. Monitoruj wykorzystanie dysku i ogranicz uprawnienia API do niezbędnego minimum.
Inne podatności w Part-DB
Zobacz wszystkie- CVE-2026-86055Wysokie
Part-DB przed wersją 2.13.3 buduje bezwzględny URL linku do resetowania hasła na podstawie nagłówka HTTP Host dostarczonego przez klienta, bez walidacji zaufanego hosta. Nieuwierzytelniony atakujący może wysłać żądanie resetu hasła dla znanego konta ze sfałszowanym nagłówkiem Host, powodując wysłanie linku z hostem kontrolowanym przez atakującego, ale z prawdziwym tokenem resetowania. Gdy ofiara otworzy link (lub zrobi to skaner poczty), token wycieka do atakującego, który może przejąć konto, w tym konto administratora.
- CVE-2026-86020Średnie
Part-DB przed wersją 2.13.2 zawiera podatność na wstrzyknięcie formuł arkusza kalkulacyjnego w procesie importu/eksportu części. Uwierzytelniony użytkownik z uprawnieniami do importu może zaimportować plik CSV zawierający wartości z prefiksem formuły, takie jak =1+1, do kontrolowanych pól części. Gdy część zostanie wyeksportowana jako arkusz XLSX, Part-DB zapisuje wartość za pomocą setCellValue() bez neutralizacji znaków formuły, co może spowodować wykonanie formuły przez oprogramowanie arkusza kalkulacyjnego innego użytkownika.
- CVE-2026-86018Średnie
Part-DB przed wersją 2.13.2 pozwala uwierzytelnionym użytkownikom obejść skonfigurowany maksymalny rozmiar załącznika podczas korzystania z funkcji „Download external file” po stronie serwera. Gdy pobieranie załączników po stronie serwera jest włączone, Part-DB pobiera zdalny plik i strumieniuje go bezpośrednio na dysk bez egzekwowania limitu MAX_ATTACHMENT_FILE_SIZE. W rezultacie użytkownik z uprawnieniami do tworzenia lub edycji załączników może spowodować przechowywanie plików większych niż limit, potencjalnie wyczerpując miejsce na dysku i powodując odmowę usługi.
- CVE-2026-59188Średnie
Part-DB przed wersją 2.12.3 sanityzuje pliki SVG wyłącznie na podstawie rozszerzenia nazwy pliku kontrolowanego przez użytkownika, a nie rzeczywistego typu zawartości. Uwierzytelniony atakujący może przesłać złośliwy plik SVG z ładunkiem JavaScript podając inne rozszerzenie (np. .jpg), całkowicie omijając sanityzację. Gdy dowolny użytkownik wyświetli załącznik inline, przeglądarka otrzyma Content-Type: image/svg+xml i wykona osadzony skrypt w kontekście Part-DB.
- CVE-2026-55600Średnie
W Part-DB przed wersją 2.12.2 komunikaty walidacji BOM są renderowane z użyciem filtra |raw w Twig, a zawierają placeholdery wypełniane nazwami części kontrolowanymi przez użytkownika. Użytkownik mogący edytować nazwę części może zapisać znaczniki HTML, które zostaną wyrenderowane na stronie wyników walidacji BOM innego użytkownika, co prowadzi do przechowywanego wstrzyknięcia HTML.
- CVE-2026-54631Średnie
W Part-DB przed wersją 2.12.1 plik .env w repozytorium zawiera stałą wartość APP_SECRET, której oficjalny obraz Docker jbtronics/part-db1 nie nadpisuje ani nie losuje przy starcie kontenera. Symfony używa APP_SECRET jako klucza HMAC do podpisywania ciasteczek remember-me, więc atakujący znający ten sekret może sfałszować ciasteczko remember-me dowolnego użytkownika i uzyskać w pełni uwierzytelnioną sesję bez poświadczeń.
- CVE-2026-54615Średnie
W Part-DB, systemie zarządzania inwentarzem komponentów elektronicznych, w wersjach przed 2.12.1 występuje podatność typu stored XSS. Klasa LogEntryExtraFormatter w gałęzi CollectionElementDeleted wstawia nazwę usuniętego pod-elementu (getOldName(), getCollectionName()) do HTML bez użycia htmlspecialchars(), co pozwala użytkownikowi z niskimi uprawnieniami zapisać złośliwy kod HTML/JS jako nazwę pod-elementu, a następnie wywołać jego wykonanie w przeglądarce administratora lub audytora przeglądającego dziennik aktywności lub historię elementu.
- CVE-2026-54630Krytyczne
W Part-DB przed wersją 2.12.1 mechanizm blokowania niebezpiecznych rozszerzeń przy przesyłaniu załączników nie obejmuje rozszerzenia .phar. Plik .phar przesłany jako załącznik trafia do katalogu public/media/, który jest dokument root Apache, a konfiguracja Apache kieruje .phar do PHP-FPM, co pozwala na wykonanie dowolnego kodu PHP.
Oryginalny opis (angielski, źródło NVD)
Part-DB is an open source inventory management system for electronic components. Prior to version 2.13.2, Part-DB allows authenticated API users to bypass the configured maximum attachment file size by uploading attachments through the API using base64-encoded file data. The application enforces the configured attachment size limit for normal browser-based file uploads, but the API base64 upload path does not apply the same size validation. As a result, an authenticated user with API access and permission to create attachments can upload files larger than the configured maximum attachment size, potentially exhausting disk space and causing a denial of service. This issue has been patched in version 2.13.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

