CVE-2026-85274
ŚrednieCVSS 6.5Streszczenie
Przed wersją 1.7.2 w InvoicePlane trasa Recurring::stop() jest dostępna przez GET i nie waliduje tokena CSRF. Gdy uwierzytelniony administrator załaduje treść kontrolowaną przez atakującego, która żąda /invoices/recurring/stop/{id}, aplikacja zatrzymuje wybraną fakturę cykliczną. Atakujący może celować w wiele identyfikatorów, przerywając cykliczne rozliczenia i powodując straty finansowe. Problem naprawiono w wersji 1.7.2.
Ocena ryzyka
Ryzyko przerwania cyklicznych rozliczeń i wynikających z tego strat finansowych oraz zakłócenia działalności.
Rekomendacja
Zaktualizuj InvoicePlane do wersji 1.7.2 lub nowszej, która usuwa niebezpieczną trasę GET i dodaje walidację CSRF dla operacji zatrzymania cyklicznych faktur.
Inne podatności w InvoicePlane
Zobacz wszystkie- CVE-2026-85293Średnie
W InvoicePlane w wersji 1.7.2-beta-1 wartość client_email jest przechowywana bez sprawdzania składni adresu e-mail i wyświetlana bez escape'owania wewnątrz atrybutów z podwójnymi cudzysłowami w formularzach mailerów. Administrator, który może edytować klienta, może zapisać dane łamiące atrybuty, a gdy mailer jest skonfigurowany, JavaScript wykonuje się po otwarciu strony mailera przez innego administratora. Problem naprawiono w wersji 1.7.2.
- CVE-2026-85292Średnie
Przed wersją 1.7.2 w InvoicePlane kontroler User_Controller porównuje wartość user_type z sesji z wymaganą rolą za pomocą luźnego operatora nierówności PHP. W niestandardowym backendzie sesji, który zwraca niespodziewane typy skalarne, type juggling może spowodować, że wartość nie będąca ściśle wymaganą rolą przejdzie kontrolę autoryzacji. Problem naprawiono w wersji 1.7.2.
- CVE-2026-85291Średnie
Przed wersją 1.7.2 w InvoicePlane metoda Users::change_password() przyjmuje user_id z URL i aktualizuje hasło tego konta bez autoryzacji na poziomie obiektu. Uwierzytelniony administrator drugorzędny może zmienić hasło konta administratora głównego bez znajomości obecnego hasła, a następnie przejąć konto i uzyskać jego dane oraz uprawnienia. Problem naprawiono w wersji 1.7.2.
- CVE-2026-85290Średnie
Przed wersją 1.7.2 w InvoicePlane metoda Cron::recur() zapisuje nieprawidłowy klucz cron z adresu URL bezpośrednio do logu aplikacji bez neutralizacji znaków CRLF. Nieuwierzytelniony żądający może wstrzyknąć sfałszowane linie logów do ścieżki audytowej, co może zakłócić analizę kryminalistyczną i monitoring oparty na logach. Problem naprawiono w wersji 1.7.2.
- CVE-2026-85289Średnie
Przed wersją 1.7.2 w InvoicePlane brakuje walidacji tokena CSRF w metodach usuwania, takich jak Payments::delete(), Recurring::delete() i User_clients::delete(). Mimo że trasy wymagają metody POST, nie sprawdzają tokena CSRF. Atakujący może wysłać formularz z innego origin przez przeglądarkę uwierzytelnionego administratora, aby usunąć dane finansowe i inne rekordy. Problem naprawiono w wersji 1.7.2.
- CVE-2026-54790Średnie
Przed wersją 1.7.2 w InvoicePlane wartość custom_field_table jest przechowywana bez sprawdzania zgodności z dozwolonymi nazwami tabel pól niestandardowych. Metoda Mdl_custom_fields::used() później konkatenuje tę wartość w pozycje identyfikatorów tabeli i kolumny w zapytaniu, co powoduje wtórną iniekcję SQL po otwarciu formularza edycji pól niestandardowych. Iniekcja może odczytywać dowolne dane ze schematu i powodować błędy lub awarię usługi. Problem naprawiono w wersji 1.7.2.
- CVE-2026-50547Wysokie
W InvoicePlane przed wersją 1.7.2 metoda Invoices::generate_xml() dołącza pochodzący z bazy danych xml_id do katalogu pomocniczego XMLconfigs i włącza wynikową ścieżkę PHP bez walidacji identyfikatora. Atakujący z niskimi uprawnieniami, mogący wpłynąć na konfigurację e-faktury, może użyć sekwencji przejścia katalogów do włączenia istniejącego pliku PHP. Wykonanie kodu wymaga oddzielnego mechanizmu przesyłania lub zapisu plików.
- CVE-2026-49850Wysokie
W InvoicePlane przed wersją 1.7.2 metody Invoices::delete() i Invoices::delete_invoice_tax() są eksponowane jako trasy zmieniające stan bez wymogu POST i walidacji tokenu CSRF. Gdy uwierzytelniony administrator załaduje treść kontrolowaną przez atakującego, która wywoła odpowiednią trasę, aplikacja może usunąć fakturę lub rekord podatku. Akcja cross-origin może usunąć dane finansowe bez wiedzy administratora.
- CVE-2026-39372Średnie
InvoicePlane przed wersją 1.7.2 przechowuje i udostępnia przesłane obrazy bez usuwania metadanych EXIF. Gdy administrator udostępni obraz innemu użytkownikowi, ten może odczytać współrzędne GPS, znaczniki czasu i informacje o urządzeniu. Luka została naprawiona w wersji 1.7.2.
- CVE-2026-33639Wysokie
W InvoicePlane przed wersją 1.7.2 ustawienie tax_rate_decimal_places kontrolowane przez administratora jest wstawiane do instrukcji ALTER TABLE dla tabeli ip_tax_rates w Settings::index() bez ścisłej walidacji liczbowej. Spreparowana wartość ustawienia może dodać klauzule do instrukcji zmieniającej schemat i usunąć lub zmienić wymagane kolumny bazy danych. Podatność naprawiono w wersji 1.7.2.
Oryginalny opis (angielski, źródło NVD)
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane exposes Recurring::stop() as a state-changing GET route without CSRF token validation. When an authenticated administrator loads attacker-controlled content that requests /invoices/recurring/stop/{id}, the application stops the selected recurring invoice. An attacker can target multiple identifiers to interrupt recurring billing and cause financial loss. This issue is fixed in version 1.7.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

