Podatność w oprogramowaniu parisneo/lollms umożliwia zdalnemu atakującemu wykonanie dowolnego kodu (RCE) bez uwierzytelnienia poprzez path traversal w endpoincie `/mount_extension`. Krytyczny poziom zagrożenia wynika z możliwości pełnego przejęcia systemu bez jakichkolwiek wymagań wstępnych.
▸ Pokaż oryginał (EN)
CVE-2024-4320 describes a vulnerability in the parisneo/lollms software, specifically within the `ExtensionBuilder().build_extension()` function. The vulnerability arises from the `/mount_extension` endpoint, where a path traversal issue allows attackers to navigate beyond the intended directory structure. This is facilitated by the `data.category` and `data.folder` parameters accepting empty strings (`""`), which, due to inadequate input sanitization, can lead to the construction of a `package_path` that points to the root directory. Consequently, if an attacker can create a `config.yaml` file in a controllable path, this path can be appended to the `extensions` list and trigger the execution of `__init__.py` in the current directory, leading to remote code execution. The vulnerability affects versions up to 5.9.0, and has been addressed in version 9.8.
Funkcja `ExtensionBuilder().build_extension()` wywoływana przez endpoint `/mount_extension` akceptuje parametry `data.category` oraz `data.folder`, które mogą przyjmować puste ciągi znaków (`""`). Brak odpowiedniej sanityzacji tych danych wejściowych powoduje, że konstruowana zmienna `package_path` może wskazywać na katalog główny systemu plików (path traversal, CWE-29). Jeśli atakujący jest w stanie umieścić plik `config.yaml` w kontrolowanej przez siebie ścieżce, ścieżka ta zostaje dodana do listy `extensions`, co skutkuje wykonaniem pliku `__init__.py` znajdującego się w bieżącym katalogu — prowadząc do zdalnego wykonania kodu.
Atakujący może uzyskać pełną kontrolę nad systemem, na którym działa aplikacja lollms, włącznie z odczytem i modyfikacją danych oraz wykonaniem dowolnych poleceń systemowych (RCE). Podatność jest wykorzystywalna zdalnie, bez uwierzytelnienia i bez interakcji użytkownika.
Należy zaktualizować oprogramowanie parisneo/lollms do wersji 9.8, w której podatność została usunięta. Poprawka dostępna jest również w referencjach producenta (commit: 2d0c4e76be93195836ecd0948027e791b8a2626f na GitHub).
Oprogramowanie parisneo/lollms w wersjach do 5.9.0 włącznie
Identyfikator w opisie oryginalnym wskazuje na CVE-2024-4320 jako powiązane zgłoszenie w platformie huntr.com, podczas gdy niniejsza karta dotyczy CVE-2024-5443 — obie podatności odnoszą się do tego samego mechanizmu w oprogramowaniu lollms.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H