W InvoicePlane 1.7.0 istnieje krytyczna podatność umożliwiająca zdalne wykonanie kodu (RCE) poprzez połączenie ataku Local File Inclusion (LFI) z techniką Log Poisoning. Zagrożenie jest poważne, ponieważ pozwala uwierzytelnionemu administratorowi na wykonanie dowolnych poleceń systemowych na serwerze.
▸ Pokaż oryginał (EN)
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. A critical Remote Code Execution (RCE) vulnerability exists in InvoicePlane 1.7.0 through a chained Local File Inclusion (LFI) and Log Poisoning attack. An authenticated administrator can execute arbitrary system commands on the server by manipulating the `public_invoice_template` setting to include poisoned log files containing PHP code. Version 1.7.1 patches the issue.
Atak polega na łańcuchu dwóch technik: najpierw atakujący zatruwa pliki dziennika (log poisoning) poprzez wstrzyknięcie do nich złośliwego kodu PHP, a następnie wymusza załadowanie tych plików przez aplikację. Możliwe jest to dzięki manipulacji ustawieniem `public_invoice_template`, które kontroluje ścieżkę szablonu faktury — aplikacja nie waliduje poprawnie tej wartości (CWE-98), co prowadzi do Local File Inclusion zatrutego logu i wykonania osadzonego w nim kodu PHP (CWE-94). Dodatkowym problemem jest niewystarczające sanityzowanie danych zapisywanych do logów (CWE-117), co umożliwia skuteczne zatrucie pliku dziennika.
Uwierzytelniony administrator może wykonać dowolne polecenia systemowe na serwerze, co w praktyce oznacza pełne przejęcie kontroli nad systemem, możliwość kradzieży danych, instalacji backdoorów lub dalszego lateral movement w infrastrukturze.
Należy zaktualizować InvoicePlane do wersji 1.7.1, która zawiera poprawkę dla opisanej podatności. Szczegóły patcha dostępne są w repozytorium GitHub projektu (commit 93622f2df88a860d89bfee56012cabb2942061d6) oraz w oficjalnym security advisory GHSA-g6rw-m9mf-33ch.
InvoicePlane w wersji 1.7.0
Podatność wymaga uwierzytelnienia na poziomie administratora, co ogranicza powierzchnię ataku. Niemniej jednak w środowiskach, gdzie dostęp administracyjny jest współdzielony lub słabo chroniony, ryzyko realnego wykorzystania jest wysokie.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HInvoiceplane
APPInvoiceplane< 1.7.1
Powiązane podatności
Path traversal w InvoicePlane umożliwia odczyt dowolnych plików bez uwierzytelnienia
RCE przez nieautoryzowany upload plików PHP w InvoicePlane
RCE w InvoicePlane — niebezpieczne przesyłanie plików (upload_file)
In InvoicePlane 1.5.11 a misconfigured web server allows unauthenticated directory listing and file download. ...
InvoicePlane version 1.4.10 is vulnerable to a Arbitrary File Upload resulting in an authenticated user can up...