CVE-2026-55548
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 11 - wyżej niż 11% wszystkich znanych CVE
Streszczenie
W Yamcs przed wersjami 5.12.8 i 5.13.2, endpoint PacketsApi.exportPackets nie wymuszał sprawdzania uprawnień ReadPacket na poziomie obiektu, gdy żądanie nie zawierało konkretnych nazw pakietów. Pusta lista nazw powodowała pominięcie filtru WHERE pname IN, co pozwalało uwierzytelnionemu użytkownikowi z niskimi lub zerowymi uprawnieniami na wyeksportowanie całego archiwum surowych pakietów telemetrycznych.
Ocena ryzyka
Organizacja narażona jest na nieautoryzowany dostęp do wszystkich danych telemetrycznych, co może prowadzić do wycieku wrażliwych informacji o misji i naruszenia modelu kontroli dostępu opartego na rolach.
Rekomendacja
Niezwłocznie zaktualizuj Yamcs do wersji 5.12.8 lub 5.13.2, które wprowadzają per-pakietowe sprawdzanie ReadPacket w endpointcie exportPackets.
Inne podatności w Yamcs
Zobacz wszystkie- CVE-2026-55565Krytyczne
Yamcs przed wersjami 5.12.8 i 5.13.2 ma podatność w LikeExpression.fillCode_getValueReturn, gdzie wzorzec LIKE nie jest poprawnie escapowany i jest wstawiany do kodu Java kompilowanego przez SimpleCompiler.cook. Wzorzec może pochodzić z różnych punktów końcowych API, a cudzysłów we wzorcu może wstrzyknąć kod Java wykonywany jako proces serwera Yamcs.
- CVE-2026-55559Krytyczne
Yamcs przed wersjami 5.12.8 i 5.13.2 wstawia templateArgs z POST /api/instances i PATCH /api/instances/{instance} do YAML bez escapowania w kontekście YAML. Renderowana konfiguracja jest analizowana przez YamcsServer.createInstance i ładowana przez YamcsServerInstance, co pozwala atakującemu na wstrzyknięcie wpisu usługi dla org.yamcs.ProcessRunner. Udane wykorzystanie wykonuje polecenia jako konto usługi Yamcs.
- CVE-2026-55511Krytyczne
Yamcs przed wersjami 5.12.8 i 5.13.2 pozwala użytkownikowi z uprawnieniem SystemPrivilege.ControlArchiving na utworzenie nazwy kolumny StreamSQL z podwójnym cudzysłowem, która jest interpolowana do generowanego kodu Java. Poprzez endpoint POST /api/archive/{instance}:executeSql możliwe jest wykonanie dowolnego kodu Java w procesie serwera Yamcs, co może ujawnić dane misji i poświadczenia oraz umożliwić manipulację telemetrią lub odmowę usługi. Problem został naprawiony w wersjach 5.12.8 i 5.13.2.
- CVE-2026-46621Krytyczne
Podatność w Yamcs przed wersją 5.12.7 pozwala uwierzytelnionemu użytkownikowi z uprawnieniem ChangeMissionDatabase na zdalne wykonanie kodu poprzez nadpisanie algorytmu Python w skryptowym silniku Jython. Brak sandboksowania umożliwia import i wykonanie dowolnych klas Java, w tym java.lang.Runtime.
- CVE-2026-46562Krytyczne
W Yamcs przed wersją 5.12.7 silnik skryptowy Nashorn użyty do oceny algorytmów JavaScript nie posiadał filtru klas, co pozwalało użytkownikowi z uprawnieniami ChangeMissionDatabase na podmianę algorytmu i wykonanie dowolnego kodu Java, w tym poleceń systemowych. W domyślnej konfiguracji bez pliku security.yaml wbudowany użytkownik gość ma superuser=true, co umożliwia atak bez uwierzytelnienia.
- CVE-2026-44632Krytyczne
Yamcs przed wersją 5.12.7 zawiera podatność na wstrzykiwanie kodu po stronie serwera w silniku ewaluacji algorytmów. Uwierzytelniony użytkownik z uprawnieniami ChangeMissionDatabase może nadpisać istniejący algorytm przez REST API i wstrzyknąć kod Java, co prowadzi do zdalnego wykonania kodu na hoście.
- CVE-2026-55566Średnie
Yamcs to framework do kontroli misji. Przed wersjami 5.12.8 i 5.13.2, Yamcs przetwarza dane kontrolowane przez atakującego z trasy /ext bez sprawdzania zarejestrowanych identyfikatorów wtyczek przed renderowaniem DOM przez innerHTML. Specjalnie spreparowany URL może wykonać JavaScript po otwarciu przez użytkownika. Skrypt może odczytać dane dostępne dla aplikacji webowej Yamcs i wykonywać działania w kontekście użytkownika. Problem naprawiono w wersjach 5.12.8 i 5.13.2.
- CVE-2026-55552Wysokie
Yamcs przed wersją 5.11.13 zawiera podatność w StaticFileHandler.locateFile, która rozwiązuje nieuwierzytelnioną ścieżkę żądania bez użycia Path.normalize i Path.toAbsolutePath, aby potwierdzić, że ścieżka bezwzględna pozostaje w skonfigurowanych staticRoots. Ścieżka zawierająca segmenty traversal może opuścić zamierzony katalog główny i zwrócić dowolny czytelny plik hosta. Wada znajduje się w yamcs-core/src/main/java/org/yamcs/http/StaticFileHandler.java i może ujawnić wrażliwe dane systemu operacyjnego i aplikacji. Problem jest naprawiony w wersji 5.11.13, a linia 5.12 jest naprawiona od wersji 5.12.0.
- CVE-2026-55549Średnie
Yamcs przed wersją 5.9.4 odzwierciedla parametr redirect_uri z GET /auth/authorize do szablonu authorize.html bez odpowiedniego escapowania HTML. Specjalnie spreparowany adres URL autoryzacji może wykonać JavaScript u użytkownika Yamcs, co umożliwia kradzież danych uwierzytelniających i przejęcie konta.
- CVE-2026-55547Średnie
Yamcs przed wersjami 5.12.8 i 5.13.2 nie sprawdza uprawnień SystemPrivilege.ControlAccess w metodach IamApi.listRoles, IamApi.getRole i IamApi.listPrivileges. Każde uwierzytelnione konto może wywołać GET /api/roles, GET /api/roles/{name} i GET /api/privileges, aby wyliczyć dostępne uprawnienia systemowe i mapowania ról.
Oryginalny opis (angielski, źródło NVD)
Yamcs is a mission control framework. Prior to 5.12.8 and 5.13.2, the PacketsApi.exportPackets endpoint in yamcs-core/src/main/java/org/yamcs/http/api/PacketsApi.java failed to enforce object-level ReadPacket privileges when a request omitted specific packet names: with an empty name list the ctx.checkObjectPrivileges(ObjectPrivilegeType.ReadPacket, nameSet) call passed over an empty set, no WHERE pname IN filter was applied to the resulting SELECT * FROM tm query, and the onTuple handler streamed every retrieved packet without any per-row authorization check, so a low-privileged or zero-privilege authenticated user could dump the entire raw telemetry packet archive and bypass the role-based access control model. This issue is fixed in versions 5.12.8 and 5.13.2, which enforce per-packet ReadPacket checks in exportPackets.

