Strona główna / Blog / a2ui: javascript: URI od agenta

Blog · case study

@a2ui/web_core CVE-2026-10032: agent podsuwa javascript: URI, kliknięcie wykonuje kod w originie aplikacji

CVE-2026-10032 (@a2ui/web_core 0.9.0–0.10.1, CVSS 9.3) to XSS z nową ścieżką dostarczenia. Biblioteka renderuje interfejs generowany przez agenta AI. Funkcja openUrl przekazuje adres z akcji przycisku do window.open bez sprawdzenia schematu. Złośliwy lub zmanipulowany agent może więc podać javascript: URI, a kliknięcie przycisku wykona skrypt w originie aplikacji.

CVE-2026-10032 (@a2ui/web_core 0.9.0–0.10.1, CVSS 9.3, CWE-79, fix 0.10.2): openUrl → window.open bez walidacji schematu → javascript: URI z akcji agenta wykonuje się po kliknięciu.
Warunek: interakcja użytkownika (UI:R) — kliknięcie przycisku wyrenderowanego z outputu agenta.

Attack path

malicious / manipulated agent output -> Button component, functionCall action, url = "javascript:..." -> user clicks the rendered button -> openUrl -> window.open (no scheme check) -> script runs in the application's origin

Output agenta to dane niezaufane

Interfejsy generowane przez agentów zmieniają model zagrożeń: tekst z modelu nie jest już tylko wyświetlany, ale zamienia się w akcje — przyciski, linki, wywołania funkcji. Agent może być złośliwy (zewnętrzny serwer agentowy) albo zmanipulowany przez prompt injection z treści, którą przetwarza. W obu przypadkach to, co trafia do UI, trzeba traktować jak dane od niezaufanego źródła. To ta sama zasada co przy MCP Python SDK: metadane z drugiej strony protokołu są powierzchnią ataku.

Co powinien zrobić VE

Upgrade do 0.10.2. Zinwentaryzuj aplikacje, które renderują UI z outputu agentów (także pośrednio, przez zależności). Niezależnie od poprawki: allowlista schematów URL (http/https) w każdym miejscu, gdzie output agenta otwiera adres, oraz CSP ograniczające wykonanie skryptów. Test negatywny po poprawce: przycisk z javascript: URI (i innymi niepożądanymi schematami, np. data:) przekazanym tą samą ścieżką danych, której używa agent, nie może niczego wykonać.

Powiązane na blogu

Źródła

Nota redakcyjna: stan informacji 6 października 2026, na podstawie draftu VMRT i publicznego advisory (GitLab Advisory DB). CVE-2026-10032 (@a2ui/web_core 0.9.0–0.10.1, CVSS 9.3, fix 0.10.2). Artykuł nie potwierdza aktywnej eksploatacji.

Zapamiętaj jedno

Gdy output agenta AI staje się przyciskiem, linkiem albo akcją w UI, trzeba go walidować jak każde niezaufane wejście. Jeden brakujący test schematu URL wystarczy, żeby agent wykonał skrypt w originie Twojej aplikacji.