CVE-2026-96455
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
Demon Reachy Mini udostępnia endpoint HTTP POST /apps/install bez jakiejkolwiek autoryzacji. Endpoint przyjmuje nazwę publicznego Hugging Face Space, pobiera go i instaluje jako pakiet Pythona, co powoduje wykonanie kodu wybranego przez atakującego. W wersji bezprzewodowej demon nasłuchuje na 0.0.0.0, więc każdy host w tej samej sieci LAN może zainstalować i uruchomić dowolny kod na robocie.
Ocena ryzyka
Atakujący w tej samej sieci LAN może bez uwierzytelnienia zainstalować i uruchomić dowolny kod na robocie, przejmując nad nim pełną kontrolę. Zmiana CORS w wersji 1.8.2 nie usuwa tego problemu, ponieważ dotyczy wyłącznie przeglądarek, a bezpośrednie żądania HTTP z innej maszyny nie podlegają sprawdzaniu CORS.
Rekomendacja
Nie podłączaj robota Reachy Mini do niezaufanych sieci LAN do czasu wydania poprawki. Ogranicz dostęp do endpointu /apps/install poprzez zaporę sieciową lub uwierzytelnianie na poziomie reverse proxy i śledź aktualizacje producenta.
Powiązane podatności
- CVE-2026-119344Krytyczne
Cocos AI w wersji 0.8.2 i wcześniejszych akceptuje dowody atestacji środowiska zaufanego wykonania (TEE), gdy poziomy poprawek firmware i pomiary oprogramowania są zgodne, bez powiązania dowodów z dozwolonym właścicielem platformy lub unikalną tożsamością maszyny oraz bez wymuszania unieważnienia. Zdalny atakujący kontrolujący inną platformę zaufaną przez tego samego weryfikatora może podstawić ważne dowody z tej platformy i spowodować autoryzację niewłaściwej platformy. Podatność naprawiono w wersji 0.9.0, ale nie da się jej w pełni załatać wyłącznie w kodzie źródłowym, ponieważ wynika z samego modelu zagrożeń obliczeń poufnych.
- CVE-2026-83542Krytyczne
W Apache OFBiz 24.09 przed 24.09.08 wykryto podatność Code Injection. Zdalny nieuwierzytelniony atakujący może wykonać dowolny kod na serwerze poprzez przygotowanie złośliwego XML widgetu w uploadzie multipart i nadpisanie mainDecoratorLocation, co prowadzi do oceny niesandboxowanego wyrażenia Groovy.
- CVE-2026-117691Krytyczne
W implementacji wiązania SAML HTTP-Redirect w Keycloak występuje luka polegająca na tym, że serwer przetwarza nazwy parametrów zakodowane procentowo (np. %53AMLResponse), podczas gdy logika weryfikacji podpisu sprawdza tylko literalne nazwy parametrów. Atakujący może wykorzystać tę rozbieżność, dostarczając spreparowaną, niepodpisaną wiadomość SAML, którą serwer przetwarza zamiast legalnie podpisanej, co prowadzi do pełnego przejęcia konta użytkowników sfederowanych.
- CVE-2026-96677Krytyczne
Podatność Cross-site Scripting (XSS) w Apache Juneau. Serializacja dokumentów HTML nie koduje podstawień zmiennych w elementach szablonu strony (nagłówek, nawigacja, stopka itp.), więc aplikacje, które umieszczają tam dane z żądania, odzwierciedlają je bez kodowania.
- CVE-2026-73117Krytyczne
Podatność HTTP Response Splitting (wstrzykiwanie CRLF w nagłówkach HTTP) w Apache Juneau. Serwer REST przekazywał wartości nagłówków odpowiedzi i cele przekierowań do kontenera serwletów bez walidacji, co przy danych z żądania mogło pozwolić na wstrzyknięcie nagłówków lub przekierowanie na dowolną witrynę.
- CVE-2026-73116Krytyczne
Podatność niewystarczającej ochrony poświadczeń w Apache Juneau. Klient RestClient podążał za przekierowaniami HTTP, zachowując nagłówki poświadczeń z pierwotnego żądania, więc serwer przekierowujący na inny host, port lub z HTTPS na HTTP mógł otrzymać nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key.
- CVE-2026-73101Krytyczne
Podatność ujawniania informacji wrażliwych w komunikatach błędów w Apache Juneau. Serwer REST wysyła klientom klasę i treść wewnętrznego wyjątku w nagłówku odpowiedzi "Thrown" przy każdym błędzie oraz może umieszczać wewnętrzne komunikaty wyjątków w treści błędu, nawet przy wyłączonym renderowaniu stosu.
- CVE-2026-73100Krytyczne
Podatność umieszczania informacji wrażliwych w plikach logów w Apache Juneau. Domyślny logger wywołań serwera REST zapisuje nagłówki żądań dla żądań kończących się błędem serwera bez redakcji, więc nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key trafiają jawnym tekstem do logów aplikacji.
- CVE-2026-73099Krytyczne
Podatność Cross-Site Request Forgery (CSRF) w Apache Juneau. Serwer REST akceptuje parametr zapytania "content", który zastępuje treść żądania i jest domyślnie włączony dla każdej metody HTTP, w tym GET, więc link międzywitrynowy może dostarczyć wybraną przez atakującego treść żądania bez preflight CORS.
- CVE-2026-73098Krytyczne
Podatność nieprawidłowej kontroli dynamicznie ładowanego kodu w Apache Juneau. Przy parsowaniu wartości do właściwości typu java.lang.Class domyślna zamiana klas ładowała wskazaną klasę z włączoną inicjalizacją, więc dane wejściowe wskazujące klasę z classpath aplikacji uruchamiały jej statyczny inicjalizator.
Oryginalny opis (angielski, źródło NVD)
The Reachy Mini daemon exposes an HTTP API for managing the robot. Its app installation endpoint, POST /apps/install in src/reachy_mini/daemon/app/routers/apps.py, has no authentication. The handler's only dependency is Depends(get_app_manager), which just hands back the manager object from application state, so nothing in the chain ever checks a credential. The endpoint takes an AppInfo body naming a Hugging Face Space. The daemon downloads that Space and installs it as a Python package through install_package in src/reachy_mini/apps/sources/local_common_venv.py, using uv or pip. Installing a Python package runs the package's own build and setup code, so whoever chooses the Space chooses what code the robot runs. Anyone can publish a public Hugging Face Space, so this is not a meaningful restriction on the attacker. How far this reaches depends on the model. In _resolve_bind_host in src/reachy_mini/daemon/app/main.py the daemon binds 0.0.0.0 when it runs as the wireless version and 127.0.0.1 otherwise, with the vendor's own comment explaining that the robot has to be reachable on the LAN. On a wireless unit, then, any host on the same network can install and run code on the robot without credentials. One related change has already shipped but does not fix this. Version 1.8.2 replaced the wildcard CORS policy with an allow list of localhost and Tauri origins. That closes the browser drive-by route, where a web page the victim visits silently calls the endpoint in the background. It has no effect on this issue: CORS is enforced by browsers and governs whether script may read a response, while a direct HTTP request from another machine on the network involves no browser, no preflight and no CORS check at all.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

