Et arkiv på 313 MB, ingen bad om at få sendt
Z.ai offentliggjorde mandag kildekoden til ZCode, virksomhedens kodeagent, tre dage efter at en betalende abonnent viste, at værktøjet pakkede hele arbejdsområder og sendte dem op i Alibabas sky uden at spørge.
Udvikleren, der udgiver under navnet ferstar, dokumenterede adfærden den 18. september. Fundet kom under oprydning af diskplads på en MacBook Air, hvor mappen ~/.zcode var vokset forbi 700 MB. Indeni lå et øjebliksbillede af et kommercielt projekt: 345 MB filer komprimeret til et krypteret arkiv på 313 MB med 42.411 filer fra arbejdsområderne.
Det meste var Git-historik
Omkring 87 procent af lasten var mappen .git. Efter ferstars opdeling var den største del 196,1 MB LFS-cache, efterfulgt af 102,2 MB commit-objekter og 0,6 MB reflogs. Det er ikke et øjebliksbillede af den kode, en udvikler arbejder i. Det er projektets historie, med hver gren og hver slettet tilstand, som arkivet stadig husker.

Arkivet blev krypteret før upload med kuvertkryptering — en AES-256-CTR-indholdsnøgle pakket med RSA-OAEP-SHA256 — og lagt på Aliyun OSS, efter at legitimationsoplysninger var forhandlet med Z.ais servere. Den private nøgle nåede aldrig brugerens maskine. Den praktiske følge er, at udvikleren ikke kunne åbne sit eget uploadede arkiv, og det kunne den klient, der lavede det, heller ikke.
Indstillingerne virkede ikke
ZCode havde to indstillinger, der lød, som om de styrede dette: “Optimize Experience” og “Repo Snapshot Indexing”. At slå dem fra stoppede ikke indsamlingen, fordi kæden kørte betingelsesløst, så snart appen var logget ind. At slette den ventende pakke hjalp heller ikke: inden for en halv time blev et nyt arkiv på 313 MB bygget. Ét øjebliksbillede havde samlet 564 mislykkede uploadforsøg, før nogen opdagede det.
Udbedringen, og hvad den ikke kan vise

Z.ai siger, at problemet er løst. Den administrerende direktør Zhang Peng sagde, at virksomheden havde gennemført den nødvendige udbedring, ifølge RuntimeWire, og derefter offentliggjorde virksomheden koden.
Arkivet på github.com/zai-org/ZCode har Apache-2.0-licens og dækker skrivebordsprogrammet, browsergrænsefladen, terminalagenten, backend-tjenesterne, den delte grænseflade og agentkørselsmiljøet. Det blev oprettet den 20. september og åbnede med to commits — et samlet kodedump frem for den udviklingshistorik, der ville lade nogen granske, hvordan uploadvejen blev skrevet, eller hvornår den blev ændret.
Z.ais egen meddelelse indrømmer grænsen: intern behandling, der sker efter at forespørgsler når virksomhedens gateway, ligger uden for det, klientarkivet kan verificere. At offentliggøre klienten siger, hvad softwaren gør nu. Det siger ikke, hvad der skete med arkiver, der allerede var uploadet, om de blev slettet, eller hvem i virksomheden der kunne læse dem.
Hvad der afgør fortsættelsen
Arkivet har hverken SECURITY.md eller offentliggjorte sikkerhedsmeddelelser. De, der brugte ZCode, har ingen mekanisme til at bekræfte, hvad der blev gemt, og ingen måde at verificere, at de distribuerede binære filer svarer til den offentliggjorte kode, uden at bygge og sammenligne dem. Om Z.ai svarer på nogen af spørgsmålene, afgør, om åben kildekode var udbedring eller reklame.