CVE-2026-55384
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Zmanipulowane sumy dokumentów mogą być niezgodne z cenami i ilościami pozycji, co prowadzi do błędnych rozliczeń i potencjalnych strat finansowych.
Rekomendacja
Należy zaktualizować InvoiceShelf do wersji 2.4.0 lub nowszej oraz wdrożyć weryfikację spójności sum z pozycjami po stronie serwera.
Inne podatności w InvoiceShelf
Zobacz wszystkie- CVE-2026-55387Wysokie
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.
- 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-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. Prior to version 2.4.0, InvoiceShelf invoice, estimate, and recurring-invoice creation paths accept client-supplied total, sub_total, tax, discount_val, and due_amount values without verifying that they match the submitted line items. An authenticated user can persist manipulated financial totals through InvoicesRequest::getInvoicePayload and the corresponding EstimatesRequest and RecurringInvoiceRequest handlers, causing stored document totals to disagree with their item prices and quantities. This issue is fixed in version 2.4.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

