CVE-2026-77394
WysokieCVSS 7.6Streszczenie
W OpenC3 COSMOS od wersji 5.0.6 do 7.3.0 uwierzytelniony użytkownik z uprawnieniem system_set może zapisać współdzielony ekran przez POST /openc3-api/screen, którego akcja widżetu BUTTON jest wykonywana w przeglądarce innego operatora po aktywowaniu przycisku. Zapisany skrypt działa w origin COSMOS i może odczytać localStorage.openc3Token, co pozwala na kradzież tokenu bearer ofiary, przejęcie konta i działania z uprawnieniami ofiary.
Ocena ryzyka
Atakujący z uprawnieniem system_set może przejąć konto innego operatora poprzez kradzież tokenu bearer, a następnie wykonywać działania z jego uprawnieniami. Permisywna polityka bezpieczeństwa treści ułatwia wykonanie, choć nie jest główną przyczyną.
Rekomendacja
Zaktualizuj OpenC3 COSMOS do wersji 7.3.0 lub nowszej oraz ogranicz uprawnienie system_set do zaufanych użytkowników i rozważ zaostrzenie polityki CSP.
Inne podatności w OpenC3 COSMOS
Zobacz wszystkie- CVE-2026-77601Wysokie
W OpenC3 COSMOS od wersji 5.12.0 do 7.3.0 uwierzytelniony użytkownik może zapisać ustawienie pypi_url przez set_setting w POST /openc3-api/api, a następnie doprowadzić do interpolacji tej wartości do polecenia powłoki podczas instalacji wtyczki z metadanymi zależności Pythona. Znaki specjalne powłoki w ustawieniu są interpretowane przez shell, co pozwala na wykonanie dowolnych poleceń systemowych jako użytkownik usługi openc3 z dostępem do poświadczeń Redis i bucketów.
- CVE-2026-42084Wysokie
OpenC3 COSMOS przed wersjami 6.10.5 i 7.0.0-rc3 pozwalał użytkownikom na zmianę hasła bez podawania starego hasła, akceptując jedynie ważny token sesji. To zachowanie może być wykorzystane przez atakującego, który posiada ważny token sesji, do przejęcia konta i zablokowania dostępu dla prawowitych użytkowników.
- CVE-2026-77602Krytyczne
OpenC3 COSMOS zapewnia funkcjonalność wysyłania poleceń i odbierania danych z jednego lub więcej systemów wbudowanych. Od wersji 5.1.0 do 7.3.0, uwierzytelnieni użytkownicy niebędący administratorami mogą zapisywać treści w katalogu targets_modified/, które są później wykonywane przez wiele ścieżek konfiguracyjnych poniżej zamierzonego poziomu uprawnień do wykonywania kodu. Definicje tabel i poleceń lub telemetrii są przetwarzane przez ConfigParser, PacketConfig, GENERIC_READ_CONVERSION lub GENERIC_WRITE_CONVERSION, umożliwiając renderowanie ERB lub ocenę Ruby i Pythona, podczas gdy openc3-cosmos-script-runner-api/scripts/run_suite_analysis.rb wykonuje pliki procedur suite przez require. Przesyłanie danych do magazynu, zapisy ekranów i tworzenie skryptów mogą umieścić treści w nakładce, a wyzwolenie przetwarzania tabel, przeładowania cmd/tlm lub analizy suite wykonuje treści w cmd-tlm-api, decom microservices lub Script Runner z dostępem do wewnętrznych poświadczeń i danych. Problem został naprawiony w wersji 7.3.0.
- CVE-2026-42088Krytyczne
OpenC3 COSMOS przed wersją 7.0.0-rc3 umożliwia użytkownikom wykonywanie skryptów Python i Ruby z kontenera openc3-COSMOS-script-runner-api. Umożliwia to obejście kontroli uprawnień API i wykonywanie działań administracyjnych, w tym modyfikację danych w bazie Redis.
Oryginalny opis (angielski, źródło NVD)
OpenC3 COSMOS provides the functionality needed to send commands to and receive data from one or more embedded systems. From 5.0.6 until 7.3.0, an authenticated actor with system_set permission can store a shared screen through POST /openc3-api/screen whose BUTTON widget action is evaluated by openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/ButtonWidget.vue in another operator's browser session when the button is activated. The stored script runs in the COSMOS origin and can read localStorage.openc3Token, allowing theft of the victim's bearer token, account takeover, and actions with the victim's privileges. The permissive content security policy contributes to execution but is not the primary root cause. This issue is fixed in version 7.3.0.

