CVE-2026-81735: Kritisk hul i UI-TARS-desktop MCP-server
UI-TARS-desktops MCP-servere til kommandoer og filsystem stod åbne uden login for hele netværket. Opdater til rettelsen i commit c2ad42e straks.
Hvad er det?
Sårbarheden (CVE-2026-81735) sidder i mcp-http-server-pakken, en del af UI-TARS-desktop, et open source-projekt til AI-agenter, der kan styre en computer. Pakken starter en MCP-server, en tjeneste der lader en AI-agent sende kommandoer og læse eller skrive filer over netværket. Uden en angivet adresse bandt serveren sig til ‘::’, det vil sige alle netværksinterfaces, i stedet for kun localhost. Serverens login-lag var samtidig valgfrit: det slås kun til, hvis den der starter serveren selv indsætter det. Pakkerne @agent-infra/mcp-server-commands og @agent-infra/mcp-server-filesystem starter serveren uden dette lag, så begge stod helt åbne for alle, der kunne nå porten.
Hvem rammer det?
Det rammer virksomheder og udviklere, der bruger UI-TARS-desktop eller pakkerne @agent-infra/mcp-server-commands og @agent-infra/mcp-server-filesystem til AI-agenter, der skal køre kommandoer eller udføre filoperationer. Alle versioner op til og med pakkeversion 1.2.4 er ramt, fordi rettelsen ligger i en kodeændring (commit c2ad42e3eb9b27830db41a3e6f51ca7179d9b168) uden en tilhørende versionsopdatering. Er serveren tilgængelig fra internettet eller fra et internt netværk, der ikke er tilstrækkeligt afskærmet, er den udsat.
Hvad kan ske?
En angriber, der kan nå serverens port, kan uden login sende kommandoer direkte til operativsystemet via værktøjet run_command, som sender den indsendte kommandostreng direkte til child_process.exec. Det giver mulighed for at installere skadelig kode, stjæle data eller bruge maskinen som springbræt til resten af netværket. Filsystem-serveren giver samme risiko for læsning og skrivning af filer uden loginkrav, hvilket kan bruges til at stjæle følsomme dokumenter eller ændre systemfiler.
Hvor alvorligt er det?
CVSS-scoren er 10 ud af 10, den højeste mulige. Angrebet kræver ingen login, ingen brugerhandling fra offeret og kan udføres over netværket med lav kompleksitet. Konsekvensen er fuld kompromittering af fortrolighed, integritet og tilgængelighed. Der er ikke oplyst om aktiv udnyttelse på offentliggørelsesdatoen, men sårbarheden er triviel at udnytte, og angrebsmetoden er beskrevet i detaljer.
Hvad gør jeg nu?
Følg disse skridt for at lukke hullet og reducere risikoen, mens I opdaterer.
- Opdater koden til commit c2ad42e3eb9b27830db41a3e6f51ca7179d9b168 eller nyere, som sætter standardadressen til localhost.
- Kan I ikke opdatere med det samme, så sæt lyttedressen manuelt til 127.0.0.1 og tilføj et eksplicit login-lag til serveren.
- Bloker adgang til MCP-serverens port i firewall eller netværkssegmentering, så kun betroede interne systemer kan nå den.
- Gennemgå logs for uventede kald til run_command eller filoperationer, der ikke stammer fra jeres egen brug.
- Skift til nyeste kode af UI-TARS-desktop og de tilhørende @agent-infra-pakker, og verificer at login nu er krævet, ikke valgfrit.
- Kontakt en sikkerhedsspecialist, hvis I finder tegn på misbrug eller er i tvivl om jeres eksponering.
Opdatér inden for 24 timer
Vi anbefaler, at I straks tjekker om jeres opsætning af UI-TARS-desktop eller @agent-infra/mcp-server-commands og filesystem er tilgængelig fra netværket uden login. Er den det, skal I opdatere til den rettede commit og binde serveren til localhost, indtil et login-lag er på plads. Det er kun i orden at vente med opdateringen, hvis serveren allerede kun kan nås fra localhost og aldrig har været eksponeret på netværket.
Tidslinje
Konkrete eksempler
AI-agent på internt netværk uden afskærmning
En dansk produktionsvirksomhed bruger UI-TARS-desktop til at lade en AI-agent automatisere filhåndtering og systemkommandoer på en intern server. Serveren er sat op uden eksplicit host-adresse og er derfor tilgængelig fra hele det interne netværk. En medarbejders inficerede bærbare computer, der er tilsluttet samme netværk, bruges af en angriber til at sende kommandoer direkte til serveren uden login, hvilket giver adgang til at installere skadelig kode og læse følsomme filer.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
I er ramt, hvis I bruger UI-TARS-desktop eller pakkerne @agent-infra/mcp-server-commands eller @agent-infra/mcp-server-filesystem, og serveren er startet uden en angivet host-adresse eller uden eksplicit login-lag.
Hvordan tjekker vi, om serveren er eksponeret?
Kontroller hvilken adresse serveren lytter på: ‘::’ eller 0.0.0.0 betyder alle interfaces. Test dernæst om I kan nå MCP-porten fra en anden maskine på netværket eller fra internettet uden at logge ind.
Kan vi vente til weekenden med at opdatere?
Nej. Sårbarheden kræver ingen login og kan udnyttes fra netværket med lav kompleksitet, så vi anbefaler at lukke eksponeringen samme dag, den bliver fundet.
Er der en officiel opdateret version, vi kan installere?
Rettelsen ligger i commit c2ad42e3eb9b27830db41a3e6f51ca7179d9b168, men pakkeversionen er ikke opdateret til et nyt versionsnummer. I skal derfor opdatere til den specifikke commit eller nyere kode i stedet for at lede efter en versionsopdatering.
Skal vi anmelde dette til Datatilsynet eller andre myndigheder?
Kun hvis I finder konkrete tegn på, at persondata er blevet tilgået eller ændret som følge af sårbarheden. Uden tegn på misbrug er der ikke krav om anmeldelse, men vi anbefaler stadig at lukke sårbarheden hurtigt.
Hvad hvis vi ikke selv har startet MCP-serveren, men bruger et tredjepartsprodukt, der indeholder den?
Kontakt leverandøren og bed om bekræftelse på, at deres integration af UI-TARS-desktop eller @agent-infra-pakkerne er opdateret til den rettede commit, og at serveren ikke er eksponeret uden login.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
startServer.ts in the mcp-http-server package of UI-TARS-desktop defaulted its listen address to ‘::’ when no host was given, so startSseAndStreamableHttpMcpServer bound the Streamable HTTP and SSE MCP transports to every interface, and its authentication middleware was optional: middlewares are applied only when a caller supplies them. The @agent-infra/mcp-server-commands and @agent-infra/mcp-server-filesystem entry points call startSseAndStreamableHttpMcpServer with a host and port alone and pass no middleware, so neither server required a credential. The commands server exposes a run_command tool that hands its caller-supplied command string to promisify(child_process.exec), so any unauthenticated client able to reach the port could run arbitrary commands as the user running the server, and the filesystem server exposed its file read and write tools on the same terms. The listen default became 127.0.0.1 in commit c2ad42e3eb9b27830db41a3e6f51ca7179d9b168; the package version stayed at 1.2.4 across that change, so the boundary is the commit rather than a release.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.