Uwierzytelniony administrator Kanboard może wykonać dowolny kod PHP na serwerze, wykorzystując kombinację możliwości zapisu pliku i podatności path traversal przy imporcie bazy danych SQLite. Podatność jest krytyczna, ponieważ prowadzi do pełnego przejęcia kontroli nad serwerem.
▸ Pokaż oryginał (EN)
Kanboard is project management software that focuses on the Kanban methodology. An authenticated Kanboard admin can run arbitrary php code on the server in combination with a file write possibility. The user interface language is determined and loaded by the setting `application_language` in the `settings` table. Thus, an attacker who can upload a modified sqlite.db through the dedicated feature, has control over the filepath, which is loaded. Exploiting this vulnerability has one constraint: the attacker must be able to place a file (called translations.php) on the system. However, this is not impossible, think of anonymous FTP server or another application that allows uploading files. Once the attacker has placed its file with the actual php code as the payload, the attacker can craft a sqlite db settings, which uses path traversal to point to the directory, where the `translations.php` file is stored. Then gaining code execution after importing the crafted sqlite.db. This issue has been addressed in version 1.2.42 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Aplikacja Kanboard wczytuje plik językowy (translations.php) na podstawie wartości ustawienia application_language przechowywanego w tabeli settings bazy SQLite. Atakujący z uprawnieniami administratora może przesłać spreparowaną bazę sqlite.db poprzez wbudowaną funkcję importu, w której ścieżka do pliku językowego zawiera sekwencje path traversal wskazujące na lokalizację kontrolowanego przez atakującego pliku translations.php. Plik ten musi zostać wcześniej umieszczony na serwerze dowolną dostępną metodą — np. przez anonimowy serwer FTP lub inną aplikację umożliwiającą wgrywanie plików. Po zaimportowaniu spreparowanej bazy SQLite aplikacja ładuje podstawiony plik PHP i wykonuje zawarty w nim kod.
Atakujący uzyskuje możliwość wykonania dowolnego kodu PHP na serwerze (RCE), co może prowadzić do pełnego przejęcia systemu, kradzieży danych, instalacji backdoorów lub dalszego lateral movement w sieci.
Należy zaktualizować Kanboard do wersji 1.2.42 lub nowszej. Producent nie przewiduje żadnych obejść dla tej podatności — jedynym skutecznym środkiem zaradczym jest aktualizacja.
Kanboard we wszystkich wersjach poprzedzających 1.2.42. Wymagane jest konto administratora oraz możliwość umieszczenia pliku translations.php na serwerze.
Podatność wymaga spełnienia dwóch warunków jednocześnie: posiadania konta administratora Kanboard oraz możliwości umieszczenia pliku na serwerze (np. przez anonimowy FTP lub inną aplikację). Szczegóły opublikowano w ramach GitHub Security Advisory GHSA-jvff-x577-j95p.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HKanboard
APPKanboard< 1.2.42
Powiązane podatności
Kanboard: pominięcie uwierzytelnienia przez sfałszowany nagłówek HTTP (REVERSE_PROXY_AUTH)
Kanboard: niebezpieczna deserializacja PHP umożliwiająca RCE
Kanboard: path traversal umożliwiający odczyt i usunięcie plików przez admina
Kanboard is project management software focused on Kanban methodology. Prior to 1.2.51, Kanboard's user invite...
Kanboard is project management software focused on Kanban methodology. Versions prior to 1.2.51 have an authen...