W Yamcs (platformie kontroli misji) przed wersją 5.12.7 uwierzytelniony użytkownik z uprawnieniem ChangeMissionDatabase mógł wykonać dowolny kod na serwerze (RCE) poprzez modyfikację algorytmów Python w bazie danych misji. Podatność jest krytyczna, ponieważ umożliwia pełne przejęcie kontroli nad systemem operacyjnym hosta.
▸ Pokaż oryginał (EN)
Yamcs is a mission control framework. Prior to 5.12.7, the Yamcs script evaluation engine for Python algorithms dynamically compiled and evaluated user-controlled algorithm text using Jython through the JSR-223 ScriptEngine API without enforcing a secure sandbox, so an authenticated user with the ChangeMissionDatabase privilege could override an existing Python algorithm's logic through the mission database REST API and import and execute arbitrary Java classes such as java.lang.Runtime to achieve remote code execution on the underlying host operating system. This issue is fixed in versions 5.12.7 and 5.13.0, which disable algorithm editing by default.
Silnik ewaluacji skryptów Yamcs korzystał z Jython (implementacja Pythona na JVM) za pośrednictwem interfejsu JSR-223 ScriptEngine API do dynamicznego kompilowania i wykonywania kodu algorytmów dostarczanego przez użytkownika. Środowisko to działało bez mechanizmu izolacji (sandbox), co pozwalało na importowanie i wykonywanie dowolnych klas Java, w tym java.lang.Runtime. Atakujący z wymaganym uprawnieniem mógł nadpisać logikę istniejącego algorytmu Python przez REST API bazy danych misji, a następnie wywołać jego wykonanie po stronie serwera.
Atakujący może wykonać dowolne polecenia systemowe na hoście, na którym działa Yamcs, co prowadzi do pełnego przejęcia serwera, wycieku danych, modyfikacji konfiguracji lub zakłócenia ciągłości działania systemu kontroli misji.
Należy zaktualizować Yamcs do wersji 5.12.7 lub 5.13.0, które domyślnie wyłączają możliwość edycji algorytmów. Patche dostępne są w repozytoriach GitHub pod commitami 3c550348 oraz 4ff8fda6. Do czasu aktualizacji zaleca się ograniczenie nadawania uprawnienia ChangeMissionDatabase wyłącznie do zaufanych użytkowników.
Yamcs we wszystkich wersjach przed 5.12.7 oraz przed 5.13.0
Poprawka wprowadza wyłączenie edycji algorytmów jako ustawienie domyślne (disable algorithm editing by default). Podatność dotyczy wyłącznie użytkowników posiadających uprawnienie ChangeMissionDatabase, co nieco zawęża powierzchnię ataku, jednak nie eliminuje ryzyka w środowiskach z liberalnym zarządzaniem uprawnieniami.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HSpaceapplications Yamcs
APPSpaceapplications< 5.12.7
Powiązane podatności
RCE w Yamcs — wstrzyknięcie kodu Java przez silnik algorytmów
Yamcs: RCE poprzez brak ClassFilter w silniku Nashorn JavaScript
Path Traversal w Yamcs umożliwia usunięcie dowolnych plików przez API
Yamcs 5.8.6 is vulnerable to directory traversal (issue 1 of 2). The vulnerability is in the storage functiona...
Yamcs to framework do obsługi misji kosmicznych. W wersjach przed 5.12.8 i 5.13.2 endpoint PacketsApi.exportPa...