Den kinesiske AI-udbyder Z.ai har slukket for en central funktion i sin kodeassistent ZCode, efter at en uafhængig udvikler afslørede, at værktøjet sendte hele lokale kodebaser, inklusive Git-historik og konfigurationsfiler, til Alibabas skyinfrastruktur uden tydeligt samtykke. Sagen blev offentlig den 21. september 2026, da Reuters rapporterede, at Z.ai havde deaktiveret de berørte funktioner efter et sikkerhedsproblem i produktet.

For danske og nordiske virksomheder, der i stigende grad lader udviklere bruge AI-kodeværktøjer på følsomme repositories, rejser sagen et spørgsmål, der er svært at ignorere: hvor meget kildekode forlader egentlig virksomhedens netværk, når en assistent “indekserer” et projekt? Denne artikel gennemgår, hvad der skete, hvordan Z.ai reagerede, og hvad hændelsen betyder for markedet for AI-kodeværktøjer.

Hvad er ZCode, og hvad gik galt

ZCode er en AI-kodeassistent fra Z.ai, den internationale gren af det Beijing-baserede selskab Zhipu AI. Værktøjet ligner i grundfunktion andre AI-kodeassistenter som GitHub Copilot og Cursor: det læser din kodebase, foreslår ændringer og kan udføre flertrins-opgaver på tværs af filer. Problemet lå i en funktion kaldet “Codebase Indexing”, som også optrådte under navnet Repo Wiki i dele af dokumentationen.

Ifølge Z.ais egen forklaring, som blev gengivet af Reuters, opstod problemet, fordi Codebase Indexing-funktionen var slået til som standard for alle brugere. Det betyder, at udviklere ikke aktivt skulle vælge funktionen for at blive berørt. Den var i forvejen tændt, når man installerede og loggede ind på værktøjet.

Codebase Indexing: funktionen der var slået til som standard

Formålet med indekseringen var i sig selv legitimt. Den skulle understøtte genoptagelse af tidligere sessioner, rulle ændringer tilbage og generere en automatisk dokumentation af projektet, den såkaldte Repo Wiki. For at kunne gøre det, pakkede klienten lokale filer sammen, krypterede dem og uploadede dem til Aliyun OSS, Alibaba Clouds lagringstjeneste.

Rapportering fra flere kilder beskriver, at det ikke kun var kildekodefiler, der blev sendt af sted. Ifølge sekundære rapporter kunne uploadet også indeholde .git-mapper, LFS-cache, reflogs og globale konfigurationsfiler fra brugerens system. Z.ai har oplyst, at dataene blev slettet igen, efter at Repo Wiki-siden var genereret, og at de aldrig blev brugt til at træne modeller. Men kritikere pegede på, at kryptering og sletning ikke løser det grundlæggende tillidsproblem: selskabet bag tjenesten havde adgang til hele kodebasen, uanset om data efterfølgende blev slettet.

Sådan opdagede en udvikler problemet

Det var en udvikler med brugernavnet Ferstar, der først reverse-engineerede ZCode-klienten og fandt beviser på, at hele arbejdsmapper blev sendt til Alibabas sky. I en formulering, der siden er blevet citeret bredt i pressen, beskrev han processen sådan:

“Whenever you are logged in, ZCode silently packages your entire workspace, complete .git history, LFS asset cache, reflogs, and global app configs, encrypts it, and uploads it directly to Aliyun OSS.”

Ferstar, uafhængig udvikler og sikkerhedsundersøger, InfoWorld

Fundet spredte sig hurtigt i udviklermiljøet, blandt andet fordi flere brugere begyndte at gennemgå deres egen netværkstrafik for at bekræfte adfærden. En separat, sekundær rapport nævnte, at seks arbejdsområder med kildekode, databaseadgangskoder og medarbejderdata angiveligt var blevet identificeret, men denne konkrete påstand blev senere trukket tilbage af den, der fremsatte den. Det bør derfor ikke betragtes som et bekræftet samlet omfang af hændelsen.

Tidslinje: fra opdagelse til lukning af funktionen

Forløbet strakte sig over knap en uge, fra de første fund blev delt offentligt, til Z.ai havde fjernet den ansvarlige kode og udgivet en patchet version. Tabellen herunder samler de vigtigste datoer, baseret på selskabets egne udmeldinger og pressedækningen.

DatoBegivenhed
Før 18. september 2026Codebase Indexing er aktiveret som standard, kildekode uploades ved brug af Repo Wiki-funktionen
18. september 2026Zhipu / Z.ai undskylder offentligt og udsender en hastepatch
19. september 2026ZCode version 3.14.0 udgives, Repo Wiki og den lokale snapshot-upload fjernes
20. september 2026Z.ai forklarer, at Repo Wiki-generering kunne udløse upload af hele repositories
21. september 2026Reuters rapporterer, at Z.ai har deaktiveret de berørte funktioner
21. september 2026Version 3.14.1 udgives med yderligere fejlrettelser, ZCode gøres open source under Apache 2.0
22. september 2026The Register dækker sagen, Z.ai henviser til revisioner fra CAICT og NSFOCUS

Det bemærkelsesværdige ved tidslinjen er hastigheden. Fra de første offentlige fund til en ny, patchet version med funktionen fjernet gik der omkring 24 til 48 timer. Det tyder på, at Z.ai allerede havde en beredskabsplan klar, eller at presset fra udviklermiljøet var stort nok til at fremtvinge en hurtig løsning frem for en langsommere intern proces.

Z.ais officielle svar og undskyldning

Z.ai valgte at reagere offentligt frem for blot at rette fejlen stille. Selskabets officielle ZCode-konto skrev følgende i et opslag på X:

“In response to the ZCode product security issues reported by the community, we have completed the necessary remediation and sincerely apologize to all our users.”

ZCode, officiel produktkonto, X

I den efterfølgende dækning hos The Register uddybede Z.ai, hvad problemet konkret bestod i, og hvordan man ville forhindre gentagelser. Om selve fejlen sagde selskabet, ifølge Reuters:

“The issue originated from ZCode’s Codebase Indexing feature which was enabled by default.”

Z.ai, virksomhedsudtalelse citeret af Reuters

Selskabet lovede desuden strukturelle ændringer i, hvordan fremtidige fejl skal håndteres. Ifølge The Register udtalte Z.ai:

“Going forward, we will establish an ongoing product security vulnerability reporting and response process. We sincerely thank the community developers who previously identified issues in ZCode.”

Z.ai, virksomhedsudtalelse, The Register

Det er en anden tone, end mange virksomheder normalt lægger for dagen efter en sikkerhedshændelse. I stedet for at minimere problemet valgte Z.ai at takke de udviklere, der fandt fejlen, og love en formaliseret proces for fremtidige indrapporteringer, noget der minder om et bug bounty-program uden at bruge den betegnelse direkte.

Hvem står bag Z.ai og ZCode

Z.ai er den internationale markedsføring af Zhipu AI, et Beijing-baseret AI-selskab, der udvikler både sprogmodeller og udviklerværktøjer. ZCode er selskabets bud på en AI-kodeassistent, der konkurrerer med produkter som GitHub Copilot, Cursor og Windsurf om at blive standardværktøjet på udviklerens skrivebord. Der findes ikke pålidelige, offentligt bekræftede tal for, hvor mange virksomheder eller udviklere der aktivt bruger ZCode, og den slags tal bør ikke gættes ud fra denne ene hændelse.

Det, der derimod er bekræftet, er selskabets efterfølgende handling: ZCode blev gjort open source under en Apache 2.0-licens kort efter, at funktionen blev slukket. Det er en usædvanlig reaktion på en sikkerhedshændelse, fordi det i praksis giver enhver mulighed for at efterse koden og bekræfte, at det problematiske upload-flow faktisk er fjernet, i stedet for blot at tage selskabets ord for det.

Zhipu AI er samtidig et af de kinesiske AI-selskaber, der har satset hårdt på at vinde udenlandske udviklere gennem åbne modelvægte og gratis niveauer. Den strategi gør ZCode-sagen ekstra følsom, fordi selskabets vækst i høj grad afhænger af tillid fra udviklere uden for Kina, en gruppe der typisk stiller strengere krav til datahåndtering end selskabets hjemmemarked. En tillidsbrist af denne type rammer derfor direkte det segment, Z.ai har mest brug for at overbevise.

Reaktioner fra sikkerhedsmiljøet

Reaktionerne i udviklermiljøet var blandede. På den ene side blev Z.ais hurtige patch og efterfølgende åbenhed rost. På den anden side pegede flere på, at netop fordi indekseringen var slået til som standard, ramte problemet potentielt alle aktive brugere, ikke kun dem, der bevidst havde valgt en cloud-baseret indekseringsfunktion.

Z.ai henviste i sin kommunikation til, at eksterne parter, herunder det statslige testinstitut CAICT og sikkerhedsfirmaet NSFOCUS, havde gennemgået rettelsen. Ifølge rapporteringen fandt en gennemgang fra sikkerhedsfirmaet NPS Security desuden ingen resterende funktionel vej, der stadig kunne udløse lokale snapshots eller filoverførsler. Det er dog værd at bemærke, at de fulde revisionsrapporter, metodebeskrivelser og testomfang ikke er offentligt tilgængelige, så konklusionerne hviler i vid udstrækning på selskabets egne henvisninger.

Sammenligning: AI-kodeassistenter og sikkerhedshændelser i 2025-2026

ZCode-sagen er langt fra den eneste sikkerhedshændelse, der har ramt AI-kodeassistenter det seneste år. Shattered.io har tidligere dækket flere lignende sager, og sammenlignet giver de et billede af, hvor bredt problemet med AI-agenter og kildekode-eksponering rækker.

HændelseBerørt værktøjKerneproblemNøgletal
ZCode Codebase IndexingZ.ai ZCodeStandardaktiveret upload af hele repositories til Aliyun OSSFunktion fjernet i version 3.14.0
GitLab Duo-sårbarhedGitLab DuoSårbarhed der kunne true CI/CD-pipelinesCVSS-score 7,3
Plugin4Shell4 AI-kodeagenterPlugin-sårbarhed der eksponerede kildekode-repositories100 repositories lækket
GitSpawn7 AI-kodeagenterSamling af sårbarheder i agent-arkitekturen8 separate sårbarheder
GhostSpliceMCP-baserede AI-assistenterAngreb via Model Context Protocol der lækkede adgangsnøglerNøgler lækket i 82% af tests

Mønsteret på tværs af sagerne er tydeligt, og det bekræfter en tendens, Shattered.io også har set i undersøgelser af usikker AI-genereret kode. Det er sjældent den klassiske fjernudførelse af kode, der udgør risikoen. Det er derimod arkitekturen omkring agenterne: standardindstillinger, plugin-grænseflader og protokoller som Model Context Protocol, der giver assistenterne bred adgang til filsystemer, hemmeligheder og netværk, ofte uden at brugeren aktivt har taget stilling til det.

Konkurrencesammenligning: sådan håndterer andre værktøjer kildekode

De store AI-kodeassistenter løser opgaven med kontekstforståelse forskelligt, og forskellene bliver mere relevante, efter at ZCode-sagen har vist, hvad der kan gå galt. GitHub Copilot og de fleste JetBrains-integrerede assistenter arbejder primært med lokal kontekst fra den åbne editor og sender kun udvalgte kodestykker til modellen ved konkrete forespørgsler, i stedet for at uploade hele repositories i baggrunden.

Cursor og lignende editor-baserede værktøjer bygger typisk deres indeksering lokalt eller i en afgrænset session, hvor udvikleren selv kan se og styre, hvilke filer der indgår. Selvhostede alternativer som Continue.dev og Tabby går videre og lader virksomheden køre både model og indeksering på egen infrastruktur, så kildekoden aldrig forlader det interne netværk. Fælles for de fleste seriøse aktører er, at funktioner, der sender data ud af organisationen, som udgangspunkt kræver et aktivt tilvalg, ikke er slået til som standard.

Det er præcis dette princip, ZCode brød med. Uanset hvor godt en funktion er tænkt, ændrer standardindstillingen alt for, hvor mange brugere der reelt bliver berørt, før nogen når at reagere.

Sådan tjekker du selv om din kodeassistent sender data ud

For udviklere og sikkerhedsansvarlige, der vil verificere adfærden hos deres egne AI-kodeværktøjer, er der et par praktiske skridt, man kan tage, uden at skulle reverse-engineere en hel klient sådan som Ferstar gjorde det.

# Se hvilke processer der har åbne netværksforbindelser
sudo lsof -i -P | grep -i kodeassistent

# Overvåg udgående HTTPS-trafik gennem en lokal proxy
export HTTPS_PROXY=http://localhost:8080
mitmproxy --mode transparent

# Tjek DNS-opslag i realtid mens værktøjet kører
sudo tcpdump -i any -n port 53

En simpel proxy som mitmproxy gør det muligt at se, hvilke domæner en AI-kodeassistent rent faktisk kontakter, og hvor store datamængder der sendes af sted. Kombineret med en gennemgang af værktøjets indstillinger, hvor man specifikt leder efter funktioner relateret til indeksering, synkronisering eller “wiki-generering”, kan de fleste virksomheder danne sig et realistisk billede af egen eksponering på under en time.

Dansk og nordisk vinkel: GDPR, NIS2 og virksomhedsrisiko

Selvom ZCode-sagen udspillede sig mellem et kinesisk selskab og globale brugere, er konsekvenserne relevante for danske og nordiske virksomheder. Hvis medarbejdere har brugt et værktøj som ZCode på repositories, der indeholder personoplysninger, kan uploadet til en ekstern skytjeneste i teorien udgøre en overførsel af persondata til et tredjeland efter GDPR-reglerne, uanset om data efterfølgende er slettet igen.

Samtidig skærper NIS2-direktivet kravene til, hvordan virksomheder i en række sektorer skal styre risici i deres leverandørkæde, herunder softwareværktøjer, som medarbejdere selv installerer. ENISA, EU’s agentur for cybersikkerhed, har flere gange peget på leverandørkæden som et af de svageste led i europæiske virksomheders sikkerhedsopstilling. En AI-kodeassistent, der som standard sender kildekode ud af organisationen, er præcis den type skjult leverandørrisiko, som NIS2 forsøger at tvinge virksomheder til at kortlægge. Det gælder ikke mindst brancher, hvor kildekode i sig selv er forretningskritisk, som fintech, forsvar og medicinalindustri, hvor både IP-værdi og krav om dokumentation er høje.

Datatilsynet har ikke offentligt kommenteret specifikt på ZCode-sagen, men de generelle principper om dataminimering og gennemsigtighed i GDPR gælder uafhængigt af, hvilket værktøj der er tale om. Virksomheder, der tillader brug af AI-kodeassistenter, bør som minimum kunne dokumentere, hvilke værktøjer der er godkendt, og hvilke data de har adgang til.

Markedskonsekvenser: tillid til AI-kodeassistenter under pres

Markedet for AI-kodeassistenter er allerede presset af konkurrence fra både etablerede spillere og en voksende gruppe af åbne modeller, der tilbydes til brøkdele af prisen på de store abonnementer. En sikkerhedshændelse som ZCode-sagen rammer derfor på et tidspunkt, hvor tillid er en vigtig konkurrenceparameter, ikke kun pris og benchmarkresultater.

For virksomheder, der overvejer at indføre eller udvide brugen af AI-kodeassistenter, betyder sagen, at spørgsmålet om databehandling og standardindstillinger bør stå lige så centralt i indkøbsprocessen som funktionalitet og pris. Det gælder i særdeleshed for værktøjer fra udbydere uden for EU, hvor det kan være sværere at få indsigt i, hvordan data faktisk behandles, og hvilken jurisdiktion der gælder, hvis noget går galt.

Samtidig kan Z.ais beslutning om at åbne kildekoden til ZCode vise sig at blive en model, andre selskaber kigger på. Hvis en åben, efterprøvelig kodebase bliver et konkurrenceparameter i sig selv, kan det ændre, hvordan udbydere håndterer fremtidige sikkerhedshændelser, fra lukkede undskyldninger til demonstrerbar gennemsigtighed.

Investorer og virksomhedskøbere, der vurderer AI-kodeværktøjer som en del af deres tech-stack, vil sandsynligvis begynde at stille konkrete spørgsmål om standardindstillinger og dataflow som en fast del af due diligence-processen, på samme måde som cloud-sikkerhed og leverandørstyring allerede indgår. En enkelt hændelse ændrer sjældent hele markedet, men den sætter en ny minimumsstandard for, hvad der forventes af gennemsigtighed fra udbydere af AI-kodeassistenter.

Historisk kontekst: fra Copilot til ZCode

AI-kodeassistenter har kun eksisteret som mainstream udviklerværktøj i få år, men listen over sikkerhedshændelser vokser hurtigt. Fra GitHub Copilots tidlige debat om, hvorvidt foreslået kode krænkede ophavsret, til nutidens mere konkrete tekniske sårbarheder i agent-arkitekturer, har fokus flyttet sig fra juridiske spørgsmål til rent tekniske spørgsmål om tillid og dataflow.

Det, der adskiller ZCode-sagen fra tidligere hændelser, er, at den ikke kræver et avanceret angreb for at udnytte. Der var ingen hacker, der brød ind. Risikoen lå indbygget i produktets standardopsætning, tilgængelig for enhver, der installerede værktøjet og accepterede standardindstillingerne. Det gør den på sin vis mere bekymrende end en klassisk sårbarhed, fordi den ramte alle aktive brugere samtidig, uden at nogen behøvede at gøre noget forkert.

Forudsigelser: hvad sker der nu

  • Flere AI-kodeassistenter vil i de kommende måneder ændre standardindstillingerne for indeksering og telemetri, så dataindsamling kræver et aktivt tilvalg fremfor at være slået til fra start.
  • Virksomheder inden for regulerede brancher vil begynde at kræve dokumenteret dataflow-kortlægning, før nye AI-kodeværktøjer godkendes til brug på interne repositories.
  • Flere udbydere vil følge Z.ais eksempel og tilbyde open source-versioner af klientkomponenter for at genopbygge tillid efter sikkerhedshændelser.
  • Presset for at køre indeksering og modeludførelse lokalt eller i egen sky vil stige, til fordel for selvhostede alternativer som Continue.dev og Tabby.
  • Flere revisions- og sikkerhedsfirmaer vil specialisere sig i uafhængig gennemgang af AI-agenters netværkstrafik, som en selvstændig disciplin adskilt fra almindelig kodegennemgang.

Ingen af disse udviklinger er garanterede, men de følger et mønster, der allerede er set efter tidligere hændelser som Plugin4Shell og GitSpawn: markedet reagerer på konkrete sikkerhedshændelser hurtigere, end det reagerer på abstrakte advarsler.

Ofte stillede spørgsmål

Hvad er ZCode?
ZCode er en AI-kodeassistent udviklet af Z.ai, den internationale gren af det kinesiske selskab Zhipu AI. Værktøjet konkurrerer med produkter som GitHub Copilot og Cursor om at hjælpe udviklere med kodegenerering og projektforståelse.

Hvad gik galt med Codebase Indexing-funktionen?
Funktionen var slået til som standard og kunne uploade hele lokale repositories, herunder Git-historik og konfigurationsfiler, til Alibabas skytjeneste Aliyun OSS, når Repo Wiki-siden blev genereret.

Er mine data i fare, hvis jeg har brugt ZCode?
Z.ai oplyser, at uploadede data blev slettet efter behandling og aldrig brugt til modeltræning. Der findes dog ingen uafhængig, fuldt offentliggjort bekræftelse af omfanget, så virksomheder, der har brugt værktøjet på følsomme repositories, bør selv vurdere risikoen.

Hvordan blev problemet opdaget?
Udvikleren Ferstar reverse-engineerede ZCode-klienten og dokumenterede, at hele arbejdsmapper blev krypteret og uploadet til Aliyun OSS, uden at det var tydeligt for brugeren.

Har Z.ai løst problemet?
Ja. Version 3.14.0 fjernede Repo Wiki-funktionen og den tilhørende upload-mekanisme. Z.ai har desuden gjort ZCode open source under en Apache 2.0-licens, så koden kan efterprøves uafhængigt.

Hvad betyder sagen for danske virksomheder?
Virksomheder, der har ladet medarbejdere bruge ZCode eller lignende værktøjer på repositories med persondata, bør vurdere, om det udgør en overførsel af data til et tredjeland efter GDPR, og om værktøjet er dækket af virksomhedens NIS2-relaterede leverandørstyring.

Er andre AI-kodeassistenter ramt af lignende problemer?
Ja. Shattered.io har tidligere dækket flere relaterede sager, herunder GitLab Duo-sårbarheden, Plugin4Shell, GitSpawn og GhostSplice-angrebene mod Model Context Protocol-baserede assistenter.

Hvordan kan jeg selv tjekke, om min AI-kodeassistent sender data ud?
Brug værktøjer som lsof eller en lokal proxy som mitmproxy til at overvåge udgående netværkstrafik, mens assistenten kører, og gennemgå værktøjets indstillinger for funktioner relateret til indeksering, synkronisering eller automatisk dokumentationsgenerering.