CVE-2026-55387
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 26 - wyżej niż 26% wszystkich znanych CVE
Streszczenie
W InvoiceShelf w wersji 2.3.3 i wcześniejszych walidacja żądań masowego usuwania akceptuje identyfikatory rekordów bez konsekwentnego powiązania ich z company_id uwierzytelnionego użytkownika. Uwierzytelniony użytkownik może przesłać identyfikator innej firmy i usunąć rekordy międzyfirmowe.
Ocena ryzyka
Uwierzytelniony użytkownik może usuwać dane należące do innych firm, co prowadzi do utraty danych i naruszenia izolacji dzierżawców. Może to zaszkodzić reputacji i zgodności.
Rekomendacja
Zaktualizuj InvoiceShelf do wersji 2.4.0 lub nowszej. Upewnij się, że walidatory sprawdzają przynależność rekordów do firmy użytkownika.
Inne podatności w InvoiceShelf
Zobacz wszystkie- CVE-2026-55386Wysokie
W InvoiceShelf przed wersją 2.4.0 parametr orderByField przekazywany przez uwierzytelnionego użytkownika jest używany w wywołaniach orderBy w Invoice::scopeApplyFilters bez ograniczenia do identyfikatorów kolumn. Spreparowane wyrażenie SQL może trafić do klauzuli ORDER BY, umożliwiając ślepą ekstrakcję informacji z bazy danych.
- CVE-2026-55385Średnie
W InvoiceShelf przed wersją 2.4.0 plik PDFConfigurationRequest.php waliduje ustawienie gotenberg_host kontrolowane przez właściciela jedynie jako poprawny składniowo URL. GotenbergPDFDriver::loadView wysyła następnie żądanie HTTP multipart zawierające wyrenderowany HTML faktury, wyceny lub płatności jako document.html do tego hosta bez odrzucania adresów prywatnych, loopback, link-local lub zarezerwowanych.
- CVE-2026-55384Średnie
W InvoiceShelf przed wersją 2.4.0 ścieżki tworzenia faktur, wycen i faktur cyklicznych przyjmują dostarczone przez klienta wartości total, sub_total, tax, discount_val i due_amount bez weryfikacji, czy odpowiadają przesłanym pozycjom. Uwierzytelniony użytkownik może utrwalić zmanipulowane sumy finansowe przez InvoicesRequest::getInvoicePayload oraz odpowiednie handlery EstimatesRequest i RecurringInvoiceRequest.
- CVE-2026-55383Wysokie
W InvoiceShelf przed wersją 2.4.0 publiczne trasy faktur, wycen i płatności klienta używają numerycznego mailable_id z tokenu EmailLog bez weryfikacji mailable_type, a handlery JSON nie wymuszają EmailLog::isExpired. Token wydany dla jednego typu dokumentu może ujawnić dokument innej firmy, a wygasły token może pozostać ważny na trasach JSON.
- CVE-2026-55382Wysokie
W InvoiceShelf przed wersją 2.4.0 metody NotesController::show, update i destroy autoryzują tylko ogólną zdolność view notes lub manage notes i nie przekazują powiązanej z trasą notatki do NotePolicy, więc nie sprawdzają company_id docelowej notatki. Uwierzytelniony użytkownik personelu może odczytać, zmodyfikować lub usunąć szablony notatek innej firmy.
- CVE-2026-55381Wysokie
W InvoiceShelf przed wersją 2.4.0 endpoint POST /api/v1/estimates/{estimate}/convert-to-invoice autoryzuje tylko zdolność create-invoice i nie autoryzuje dostępu do powiązanej wyceny. Uwierzytelniony użytkownik może skopiować pozycje, ceny, sumy, podatki, notatki, walutę i dane klienta innej firmy do faktury w swojej firmie.
- CVE-2026-55610Wysokie
InvoiceShelf przed wersją 2.4.1 w instalacjach wielofirmowych pozwala właścicielowi jednej firmy na odczyt i nadpisanie kont użytkowników w innych firmach. Podatność wynika z braku weryfikacji przynależności docelowego użytkownika do firmy właściciela, co umożliwia przejęcie konta.
- CVE-2026-34367Wysokie
InvoiceShelf przed wersją 2.2.0 ma podatność SSRF w module generowania faktur PDF. HTML dostarczony przez użytkownika w polu Notes jest przekazywany bez sanityzacji do biblioteki Dompdf, która pobiera zdalne zasoby, co może być wykorzystane przez punkty końcowe podglądu PDF i wysyłki e-mail.
- CVE-2026-34366Wysokie
InvoiceShelf przed wersją 2.2.0 zawiera podatność SSRF w module generowania paragonów PDF. HTML dostarczony przez użytkownika w polu Notes jest przekazywany bez sanityzacji do biblioteki Dompdf, która pobiera zdalne zasoby, co umożliwia atak SSRF.
- CVE-2026-34365Wysokie
InvoiceShelf przed wersją 2.2.0 zawiera podatność SSRF w module generowania PDF dla kosztorysów. HTML w polu Notes jest przekazywany bez sanityzacji do Dompdf, który pobiera zdalne zasoby, co umożliwia atak SSRF.
Oryginalny opis (angielski, źródło NVD)
InvoiceShelf is an open-source web & mobile app that helps track expenses, payments and create professional invoices and estimates. In version 2.3.3 and earlier, InvoiceShelf bulk-delete request validation accepts record identifiers without consistently binding them to the authenticated user's company_id. The affected DeleteCustomersRequest, DeleteEstimatesRequest, DeleteExpensesRequest, DeleteInvoiceRequest, DeleteItemsRequest, DeletePaymentsRequest, and DeleteUserRequest validators check that identifiers exist but do not consistently check tenant ownership. An authenticated user can submit another company's identifier and delete cross-company records. This vulnerability is fixed in 2.4.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

