OpenYak przed wersją 1.1.3 udostępnia lokalny HTTP API bez walidacji Origin, uwierzytelniania ani restrykcji CORS, co pozwala dowolnej odwiedzanej stronie internetowej wykonywać zapytania do loopback API. W połączeniu z agentem budującym umożliwia to wykonanie dowolnych poleceń powłoki na komputerze użytkownika bez jego interakcji.
▸ Pokaż oryginał (EN)
OpenYak is a local-first agent runtime for reliable tool-using models, with a desktop workspace built on top. Prior to version 1.1.3, the OpenYak desktop backend binds an HTTP API to `127.0.0.1:<random port>` (commonly 19141) without server-side Origin validation, loopback authentication, or Content-Type enforcement, and with a wildcard CORS policy. Any webpage a user visits while OpenYak is running can issue cross-origin requests to this local server — the browser acts as a proxy into loopback, bypassing OS-level network isolation. Chained, this lets a malicious page execute arbitrary shell commands on the host (RCE) via the build agent with `permission_presets.bash=true`, shut down the service, and exfiltrate chat history and account PII — with no user interaction beyond opening the page. Version 1.1.3 patches the issue.
Backend OpenYak nasłuchuje na adresie 127.0.0.1 (zazwyczaj port 19141) bez weryfikacji nagłówka Origin, bez uwierzytelniania dla połączeń z loopback oraz bez wymuszania poprawnego Content-Type. Skonfigurowana polityka CORS z wildcardem pozwala przeglądarce działać jako proxy do lokalnego serwera — każda odwiedzona strona może wydawać cross-origin żądania do tego API. Atakujący może w ten sposób skorzystać z agenta budującego skonfigurowanego z uprawnieniem `permission_presets.bash=true`, aby wykonać dowolne polecenia powłoki (RCE), wyłączyć usługę oraz wyeksfiltrować historię czatu i dane osobowe konta użytkownika.
Atakujący kontrolujący złośliwą stronę internetową może uzyskać pełne zdalne wykonanie kodu (RCE) na hoście użytkownika, zatrzymać usługę OpenYak oraz skraść historię rozmów i dane osobowe konta — bez jakiejkolwiek dodatkowej interakcji użytkownika poza otwarciem strony.
Należy zaktualizować OpenYak do wersji 1.1.3, która wprowadza walidację Origin po stronie serwera, uwierzytelnianie dla połączeń loopback oraz wymuszanie Content-Type zamiast polityki CORS wildcard.
OpenYak w wersjach przed 1.1.3 (desktop backend z lokalnym HTTP API)
Podatność obejmuje łańcuch kilku słabości (CWE-94, CWE-306, CWE-346, CWE-352, CWE-942). Atak jest możliwy wyłącznie wtedy, gdy aplikacja OpenYak jest uruchomiona, a agent posiada uprawnienie `permission_presets.bash=true`. Szczegóły dostępne w GitHub Security Advisory GHSA-ccxp-q2w5-27jw.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H