En la mañana del 28 de septiembre, Zhipu anunció que la vía de subida de snapshots de repositorios de ZCode a la nube ha sido eliminada, que los datos en la nube relacionados con el caso ya fueron borrados y que la versión de código abierto se actualizó en paralelo a la 3.14.3. La nueva postura oficial es "si tú no lo inicias, no sube a la nube": sin una acción iniciada por el usuario, el código ya no sale del equipo local.
En el mismo comunicado se incluyó el plan de compensación. Cada usuario recibe 4 tarjetas de reinicio semanal y 4 tarjetas de reinicio de 5 horas, válidas durante un mes; entre el 28 de septiembre y el 7 de octubre, Zhipu repartirá entre todos los usuarios 100.000 cuotas de 100 millones de tokens cada una. El comunicado no detalló los requisitos para reclamarlas ni las reglas de reparto.
El problema estaba en el Repo Wiki
Sobre la causa del incidente, Zhipu mantiene la explicación anterior: la función de "indexación de repositorios" de ZCode incluye un componente llamado Repo Wiki; al generar páginas wiki, el proceso puede desencadenar la subida de datos del repositorio. Los datos se destruirían de inmediato tras generar la página en la nube, sin quedar almacenados. La función venía activada por defecto en la etapa inicial de lanzamiento, lo que afectó a una parte de los usuarios.
Esta explicación ya había sido cuestionada por los desarrolladores cuando apareció por primera vez el 18 de septiembre. En aquel momento, el bloguero tecnológico Ferstar analizó una muestra: un solo snapshot pesaba 313 MB, del cual el 86,6% correspondía a la carpeta .git; lo que se subía no era solo el código actual, sino también todo el historial de commits y la caché de LFS. Lo que más molestó a los desarrolladores fue que el interruptor de la interfaz solo controlaba si el servidor usaba esos datos para entrenar modelos, mientras que el empaquetado y la subida en local seguían ocurriendo con normalidad.
De la disculpa a la auditoría, con tres días de por medio
Si se ordena la cronología, la gestión de Zhipu esta vez se divide en tres pasos.
El 18 de septiembre llegó el comunicado de disculpa, con la promesa de abrir pronto el código del repositorio e invitar a terceros a revisarlo; ese mismo día la empresa reinició por única vez la cuota semanal de todos los usuarios.
El 21 de septiembre, ZCode pasó oficialmente a ser de código abierto. Según Eastmoney y otros medios, Zhipu encargó una auditoría de seguridad a la China Academy of Information and Communications Technology (CAICT) y a NSFOCUS: la evaluación técnica de la CAICT concluyó que el bucket de OSS de Alibaba Cloud llamado zcode-prod se encuentra en estado de "cero datos en la nube" y que, desde la versión v3.14.0, el cliente ya había eliminado la función Repo Wiki; NSFOCUS confirmó que ese bucket y todos los objetos de datos que contenía fueron eliminados, y que no encontró en el cliente ninguna función capaz de disparar snapshots locales del repositorio o la salida de archivos. Zhipu afirmó además que los datos de código mencionados por la comunidad no se conservan y que la empresa nunca los usó para entrenar modelos.
El 28 de septiembre, es decir, con este comunicado, la versión avanzó a 3.14.3 y el plan de compensación entró en vigor.
Diez días para recorrer "exposición, disculpa, código abierto, auditoría, compensación" no es un ritmo lento. El código abierto permite que cualquiera de fuera lea por sí mismo el código del módulo de snapshots; la auditoría, por su parte, aporta conclusiones de dos instituciones independientes. Ambas cosas son más fáciles de verificar que una simple declaración unilateral de que el problema "ya está solucionado".
Lo que todavía no se ha aclarado
El comunicado y las conclusiones de la auditoría cubren el "presente": el bucket está vacío, la vía de subida ha sido desmantelada. Para varias preguntas de carácter retrospectivo, el material público disponible todavía no da respuesta.
Zhipu no ha revelado cuántos usuarios y repositorios se vieron afectados. La base de usuarios de ZCode superó el millón a mediados de agosto y, según se ha informado, se habría duplicado hasta unos 2 millones a mediados de septiembre; cuántas personas quedaron dentro del periodo en que el Repo Wiki venía activado por defecto es algo que no se puede estimar desde fuera. Cuánto tiempo permanecieron realmente los datos en el OSS y si otros sistemas los leyeron antes de borrarlos son otros puntos abiertos: el informe completo de la auditoría no se ha hecho público, y los medios solo han reproducido las conclusiones.
Para los desarrolladores que siguen usando ZCode, la práctica prudente no ha cambiado: actualizar a la versión 3.14.3, limpiar los directorios de snapshots que hayan quedado en el equipo local y rotar todas las claves y tokens que hayan aparecido alguna vez en el historial de Git. Para lo que ya se filtró, la promesa de "ya está eliminado" solo puede garantizarse del lado del proveedor.
La compensación en tarjetas de reinicio y tokens solo tiene sentido para quien sigue usando ZCode. Las empresas que ya desinstalaron la herramienta por este episodio quieren, sobre todo, el informe de auditoría completo.
Fuentes: comunicado oficial de Zhipu ZCode, ITHome, Sina Tech, CocoLoop, Eastmoney; se verificaron el número de tarjetas y el periodo de reparto de cuotas del plan de compensación, el número de versión de código abierto, y la forma en que la CAICT y NSFOCUS expresaron las conclusiones de la auditoría.