
La CLI de codificación Grok Build de xAI estaba cargando no solo los archivos necesarios para la tarea de codificación, sino todo el repositorio Git, el historial de confirmaciones completo y más en un depósito de Google Cloud Storage ejecutado por xAI.
Los investigadores que publicaron como cerelab y probaron la versión 0.2.93 capturaron una de esas cargas, clonaron un paquete git de la solicitud interceptada y restauraron el archivo que, en términos sencillos, se le dijo al agente que no abriera.
La carga utiliza un canal separado del modelo en sí y la división de bytes no es objeto de debate. Con un repositorio de archivos de 12 GB que el modelo nunca leyó, el tráfico de giro del modelo a /v1/responses ascendió a aproximadamente 192 KB, pero el canal de almacenamiento a /v1/storage movió 5,10 GiB. Esto es aproximadamente una diferencia de 27.800 veces entre lo que requería el modelo y lo que generaba la máquina.
Esta carga de almacenamiento se realizó en 73 fragmentos de aproximadamente 75 MB, y todos los fragmentos devolvieron HTTP 200, para examinar el tamaño total del repositorio rastreado entre los tamaños de los investigadores. El depósito de destino grok-code-session-traces se nombra en el binario y en el metadata.json preparado, donde la ruta por archivo apunta a gs://grok-code-session-traces/.
El archivo no leído era src/_probe/never_read_canary.txt y tenía un marcador único incrustado. La clonación del paquete capturado lo restauró intacto con el historial de confirmaciones completo del repositorio, y las mismas pruebas se replicaron en un segundo repositorio no relacionado. La captura lo que establece es transmisión, recepción y almacenamiento, no entrenamiento.
Este desmontaje no afirma que xAI entrenó el código, que el personal leyó el código o que los archivos gitigned siempre se ingieren. Los archivos rastreados y el historial se muestran con cables.
Los Pases Secretos son diferentes y más sencillos. Cuando Grok lee el archivo, su contenido pasa al giro del modelo y el .env rastreado no se edita, sino que se guarda junto con los valores canary API_KEY y DB_PASSWORD, etc. El mismo contenido también se coloca en el archivo session_state vinculado al almacenamiento. El secreto plantado era falso, por lo que la prueba no reveló nada real. Este comportamiento sigue siendo problemático. Los archivos de credenciales leídos por el agente durante una tarea se guardaron en lugar de eliminarse.
Las configuraciones a las que llegarían la mayoría de los desarrolladores no ayudaron aquí. Incluso con la «Mejora del modelo» desactivada, Grok continuó cargando el repositorio y la respuesta /v1/settings del servidor continuó devolviendo trace_upload_enabled: true. Esta palanca controla si los datos entrenan el modelo. No determina si el código se envía desde la máquina o no. Se trata de dos controles diferentes, de los cuales sólo uno estuvo expuesto al usuario.
Se espera el primer canal porque cada agente de codificación en la nube necesita enviar alguna fuente al modelo remoto para hacer su trabajo. Enviar todo el repositorio rastreado y su historial es más amplio que enviar los archivos necesarios para una tarea.
Los repositorios pueden contener su propio código, URL internas, datos de clientes y credenciales que se eliminan de su árbol de trabajo pero permanecen en su historial de confirmaciones. En la comparación entre herramientas de Cerelab, Claude Code y Codex no enviaron paquetes de repositorio. Gemini no envió nada en la prueba inactiva, pero la cuota bloqueó la ejecución de tareas realistas antes de completarlas.
Grok Build fue un caso atípico. Estas siguen siendo herramientas en la nube que envían archivos abiertos, por lo que la idea de «solo local» es el modelo mental incorrecto para cualquiera de las herramientas. Sin embargo, la gran colección de espacios de trabajo era exclusiva de Grok Build.
reacción xAI
El 13 de julio, el mismo binario 0.2.93 dejó de solicitar almacenamiento. Cerelab volvió a realizar la prueba 6 veces y no hubo cargas para /v1/storage y el servidor devolvió enable_codebase_upload: true y trace_upload_enabled: false.
El bloqueo no solo se observó en una sola máquina en cereblab, ya que el desarrollador Peter Dedene informó que la misma bandera también fue devuelta a su cuenta. El cliente probado permaneció en 0.2.93 mientras se cambiaba la configuración del servidor. Entonces, este fue un cambio del lado del servidor y no una solución proporcionada en una actualización. xAI no ha confirmado si llegará a todas las cuentas o será permanente.
Hasta ahora, xAI ha abordado problemas con X, pero no a través de avisos de seguridad o notas de registro de cambios. La cuenta @SpaceXAI declaró que el equipo empresarial, que apunta a una retención cero de datos, nunca almacenará código ni rastreará datos, que el uso de claves API respetará ZDR y que los consumidores que no lo hayan habilitado pueden ejecutar /privacy en la CLI para deshabilitar la retención y eliminar datos previamente sincronizados.
Elon Musk fue más allá y dijo que todos los datos de los usuarios alguna vez cargados serán «borrados total y completamente» y no quedará nada. Dado que ZDR cubre los equipos empresariales y el uso de API, el comando /privacy es el control proporcionado a los suscriptores individuales.
Para aquellos que ya ejecutan la herramienta, no es necesario esperar a xAI. Rote cualquier credencial que Grok haya enviado (leída, en archivos rastreados y cualquier cosa en el historial de git incluido en el paquete), incluidos los secretos que confirma y luego elimina.
Los archivos que fueron ignorados y nunca confirmados fueron excluidos del paquete. Lo que confirma permanece en su historial y no se puede deshacer incluso si lo elimina más adelante. Otro análisis de la compilación 0.2.99 encontró que el código de carga todavía estaba en el binario y retenido por un indicador del servidor, lo que permitió a xAI volver a activar el código sin actualizar.
Todavía no está claro por qué se cargó el repositorio completo de forma predeterminada, cuánto tiempo se mantuvo o cuántos usuarios se vieron afectados. Optar por no participar en la capacitación no garantiza que su código permanecerá intacto y vale la pena comprobar usted mismo lo que sale de su máquina.
Source link
