Een AI-codeassistent mag soms bestanden verwerken om een vraag te beantwoorden. Maar een complete werkmap, inclusief projectgeschiedenis, zonder uitdrukkelijke toestemming klaarzetten voor upload is iets anders. Dat was de kwestie die onderzoeker ferstar op 18 september 2026 aan het licht bracht bij ZCode, de codeassistent van Z.AI.
4
10
32
Wat ferstar op zijn computer zag
ZCode bundelde in zijn geval 42.411 bestanden tot een versleuteld archief van 313 MB. De logbestanden vermeldden 564 pogingen om het naar de objectopslag van Alibaba Cloud te sturen. Volgens de berichtgeving mislukten die pogingen allemaal op zijn computer. De cijfers zeggen dus niets over het aantal geslaagde uploads bij andere gebruikers.
10
Het archief bevatte niet alleen actuele bronbestanden, maar ook Git-geschiedenis, waaronder reflogs en de cache van Git LFS, een systeem voor grote bestanden binnen Git-projecten. Door een hele werkmap te bundelen, konden ook gevoelige configuratiebestanden of toegangsgegevens meekomen.
4
14
Waarom gebruikers hun eigen archief niet konden controleren
Volgens de gerapporteerde technische analyse versleutelde ZCode de inhoud met AES-256-CTR. De sleutel daarvoor werd vervolgens met RSA-OAEP-SHA256 versleuteld, op basis van een publieke sleutel die de server verstrekte. De client kreeg ook gegevens om het archief naar Alibaba Cloud te uploaden.
10
De bijbehorende privésleutel bleef bij Z.AI. Gebruikers konden een eenmaal geüpload archief daardoor niet zelf openen om de inhoud te controleren. Ook konden zij niet eigenhandig vaststellen wat er daarna met hun kopie gebeurde.
17
De uitleg en de aanpassingen van Z.AI
Z.AI schreef het gedrag toe aan Codebase Indexing, een functie die standaard aanstond. Volgens het bedrijf hield de upload verband met het maken van een Repo Wiki-pagina en werden de gegevens na het genereren daarvan vernietigd. Z.AI bood excuses aan, meldde dat het de kwetsbaarheid had verholpen en publiceerde de broncode van ZCode onder de Apache 2.0-licentie.
17
22
2
Ferstar onderzocht versie 3.14.0 en trof de eerdere repoSnapshot-uploadfunctie niet meer aan. Het eindpunt voor cloudtoegangsgegevens gaf volgens hem voortaan een 404-melding.
23 Volgens gerapporteerde beoordelingen van de China Academy of Information and Communications Technology en beveiligingsbedrijf NSFOCUS was de betrokken opslagbucket leeg of verwijderd. Zij vonden in de bijgewerkte client ook geen resterende route die een lokale momentopname kon starten.
7 De gepubliceerde code is nu te onderzoeken, al merkte ferstar op dat de openbare repository slechts twee commits bevatte en niet de eerdere ontwikkelgeschiedenis.
9
Z.AI zei daarnaast een doorlopend proces voor het melden van kwetsbaarheden te zullen opzetten. Voor zijn MaaS-platform, waarmee klanten AI-modellen als dienst gebruiken, werden plannen gemeld om gebruikers niet-bewaren van gegevens te laten aanvragen. Daarbij gelden volgens de berichtgeving uitzonderingen, onder meer voor bepaalde API-functies en gegevens die om juridische of veiligheidsredenen of ter voorkoming van misbruik worden bewaard.
13
20
Wat nog niet vaststaat
Z.AI stelt dat de betreffende codegegevens niet worden bewaard en nooit zijn gebruikt om modellen te trainen. De controles van de cloudbucket ondersteunen een beperktere conclusie: ze beschrijven de toestand van de onderzochte opslag, maar bewijzen op zichzelf niets over historisch gebruik voor modeltraining of over iedere mogelijk eerder geüploade kopie.
8
9
Ook is melding gemaakt van een juridische brief van een zakelijke klant met vragen over de verwerking van geüploade gegevens. Uit de beschikbare berichtgeving blijkt niet wat die eis heeft opgeleverd of dat verwijdering voor elke getroffen gebruiker onafhankelijk is aangetoond.
18
21 Het in Hongkong genoteerde aandeel Z.AI daalde tijdens de handel op 21 september op enig moment met meer dan 5 procent. Dat was een tussentijdse koersbeweging, geen opgegeven slotkoersdaling.
30
33
Voor ontwikkelaars is het onderscheid helder: het verwijderen van de uploadfunctie in de onderzochte clientversie en de controles van één betrokken opslagbucket zijn onderbouwd. Wat met alle eerdere kopieën is gebeurd en of gegevens ooit voor modeltraining zijn gebruikt, staat daarmee niet onafhankelijk vast.
7
8
23