Grok Build cargó repositorios Git completos en xAI Storage, no solo los archivos que leyó – CYBERDEFENSA.MX

La CLI de codificación Grok Build de xAI estaba cargando repositorios Git completos, con el historial de confirmación completo y todo, en un depósito de Google Cloud Storage ejecutado por xAI, no solo los archivos que necesitaba una tarea de codificación.

Un investigador que publica como cerebroversión de prueba 0.2.93capturó una de esas cargas, clonó el paquete git de la solicitud interceptada y recuperó un archivo que al agente se le había dicho claramente que no abriera.

La carga se realizó en un canal separado del modelo en sí, y es difícil discutir la división de bytes. En un repositorio de 12 GB de archivos que el modelo nunca leyó, el modelo dirige el tráfico a /v1/responses llegó a aproximadamente 192 KB, mientras que el canal de almacenamiento a /v1/storage movió 5,10 GiB, una brecha de aproximadamente 27.800 veces entre lo que necesitaba el modelo y lo que dejaba la máquina.

Esa carga de almacenamiento se ejecutó en 73 fragmentos de aproximadamente 75 MB, cada uno de los cuales devolvió HTTP 200, y a través del tamaño del investigador barrió el tamaño total del repositorio rastreado. El cubo de destino, grok-code-session-tracesse nombra en binario y en etapas metadata.json cuyas rutas por archivo apuntan a gs://grok-code-session-traces/.

El archivo no leído fue src/_probe/never_read_canary.txtplantado con un marcador único. La clonación del paquete capturado lo recuperó palabra por palabra junto con el historial de confirmación completo del repositorio, y la misma prueba se replicó en un segundo repositorio no relacionado. Las capturas lo que establecen es transmisión, aceptación y almacenamiento, no entrenamiento.

El desmontaje no afirma que xAI esté entrenado en el código, que el personal lo lea o que los archivos ignorados por git siempre sean barridos. Los archivos rastreados más el historial es lo que muestra el cable.

Ciberseguridad

El camino de los secretos es separado y más sencillo. Cuando Grok lee un archivo, su contenido pasa al turno del modelo y se realiza un seguimiento. .env fue con ellos sin redactar, canario API_KEY y DB_PASSWORD valores y todo. El mismo contenido también llegó a un session_state archivo destinado al almacenamiento. Los secretos plantados eran falsos, por lo que no se filtró nada real en la prueba. El comportamiento sigue siendo el problema: un archivo de credenciales que el agente leyó durante una tarea salió y se almacenó sin redacción.

La configuración que elegirían la mayoría de los desarrolladores no hizo nada aquí. Con «Mejorar el modelo» desactivado, Grok aún cargó el repositorio y el propio servidor. /v1/settings la respuesta seguía regresando trace_upload_enabled: true. Esa palanca determina si sus datos entrenan el modelo. No rige si su código sale de la máquina. Son dos controles diferentes y sólo uno de ellos estuvo expuesto al usuario.

Cada agente de codificación en la nube tiene que enviar alguna fuente a un modelo remoto para realizar su trabajo, por lo que se espera el primer canal. Enviar todo el repositorio rastreado y su historial es un límite más amplio que enviar los archivos que necesita una tarea.

Un repositorio puede contener código propietario, URL internas, datos de clientes y credenciales que se eliminaron del árbol de trabajo pero que aún se encuentran en el historial de confirmaciones. En propia comparación de herramientas cruzadas de cereblabClaude Code y Codex no enviaron ningún paquete de repositorio; Gemini no envió ninguno en una prueba inactiva, aunque su ejecución de tarea realista fue bloqueada por cuotas antes de terminar.

Grok Build fue el caso atípico. Siguen siendo herramientas en la nube que envían los archivos que abren, por lo que «solo local» es el modelo mental incorrecto para cualquiera de ellas. Pero la recolección al por mayor del espacio de trabajo era específica de Grok Build.

La respuesta de xAI

El 13 de julio lo mismo. 0.2.93 El binario dejó de realizar solicitudes de almacenamiento. cereblab volvió a realizar la prueba seis veces y no vio nada /v1/storage cargas, y el servidor ahora regresó disable_codebase_upload: true y trace_upload_enabled: false.

El desarrollador Peter Dedene informó que la misma bandera fue devuelta a su cuentapor lo que el cierre no fue solo la observación de una sola máquina del cereblab. El cliente probado permaneció 0.2.93 aunque la configuración de su servidor cambió, se trató de un cambio del lado del servidor, no de una solución enviada en una actualización. xAI no ha confirmado si llega a todas las cuentas o es permanente.

Ciberseguridad

Hasta ahora, xAI ha abordado el problema en X en lugar de mediante un aviso de seguridad o una nota de registro de cambios. El Cuenta @SpaceXAI dijo que los equipos empresariales con retención de datos cero nunca tienen código o datos de seguimiento almacenados, que el uso de claves API respeta ZDR y que los consumidores que no lo han habilitado pueden ejecutar /privacy en la CLI para deshabilitar la retención y eliminar datos previamente sincronizados.

Elon Musk fue más allá, dicho todos los datos de usuario cargados hasta ahora serían «borrados total y absolutamente», sin dejar nada atrás. ZDR cubre equipos empresariales y el uso de API, por lo que para suscriptores individuales el /privacy El comando es el control que se ofrece.

Para cualquiera que ya haya ejecutado la herramienta, la decisión es no esperar a xAI. Rote cualquier credencial que Grok haya podido enviar: cualquier cosa que haya leído, cualquier cosa en un archivo rastreado y cualquier cosa en el historial de git que llevaba el paquete, incluido un secreto que usted confirmó y luego eliminó.

Un archivo que fue ignorado y nunca confirmado quedó fuera del paquete. Uno comprometido avanza en la historia y borrarlo más tarde no lo hace retroceder. Un análisis separado de la compilación 0.2.99. Encontré el código de carga todavía en el binario, retenido por la bandera del servidor, por lo que xAI puede volver a activarlo sin una actualización.

Y todavía no ha dicho por qué se cargaron repositorios completos de forma predeterminada, cuánto tiempo se conservaron o cuántos usuarios se vieron afectados. La exclusión voluntaria de la capacitación no es una promesa de que su código permanecerá fijo, y vale la pena comprobar usted mismo lo que sale de la máquina.

El ataque de desarrollo de GitHub con un solo clic permite a los atacantes robar tokens completos de OAuth de GitHub – CYBERDEFENSA.MX

Investigadores de ciberseguridad han revelado un ataque con un solo clic a través de Microsoft Visual Studio Code (VS Code) que permite robar el token de GitHub de un usuario.

«Con solo hacer clic en un enlace, es posible que un atacante robe un token de GitHub que puede leer y escribir en sus repositorios, incluidos los privados», dijo el investigador de seguridad Ammar Askar. dicho.

GitHub admite una función llamada GitHub.dev que corre como un editor de código fuente ligero basado en web en la zona de pruebas del navegador web iniciando un entorno VS Code. Permite a los usuarios enviar solicitudes de extracción y realizar confirmaciones.

Ciberseguridad

«Esta funcionalidad se logra mediante la PUBLICACIÓN de github.com a través de un token OAuth en github.dev que le permite interactuar con GitHub en su nombre», dijo Askar. «El token no tiene como alcance el repositorio particular con el que interactuó, lo que significa que tiene acceso completo a todos los demás repositorios a los que tiene acceso».

En pocas palabras, la vulnerabilidad permite a los atacantes instalar extensiones maliciosas de VS Code que roban tokens GitHub OAuth cuando se pasan a GitHub.dev mediante la explotación de un mecanismo de paso de mensajes entre la ventana principal de VS Code y vistas web. Las vistas web se utilizan para representar vistas previas de Markdown o editar cuadernos de Jupyter.

Específicamente, el exploit ejecuta JavaScript malicioso dentro de una vista web que no es de confianza para simular pulsaciones de teclas (también conocidas como eventos de pulsación de teclas) en la ventana principal del editor, abre la paleta de comandos activando «Ctrl+Shift+P» e instala una extensión controlada por el atacante que extrae el token GitHub OAuth enviado a GitHub.dev y consulta la API de GitHub para enumerar todos los repositorios privados a los que puede acceder la víctima.

Vale la pena señalar que el enfoque también aprovecha una característica de VS Code llamada extensiones de espacio de trabajo local que permite instalar una extensión directamente sin presentar ningún adicional mensaje de diálogo de confianza siempre y cuando esté ubicado en la carpeta «.vscode/extensions» dentro de ese espacio de trabajo, evitando efectivamente la verificación de confianza del editor.

Ciberseguridad

«Sin embargo, esto es sólo un pequeño inconveniente, una de las cosas que las extensiones pueden hacer como parte de su paquete.json es contribuir con combinaciones de teclas adicionales a VS Code», explicó el investigador. «Dado que podemos activar combinaciones de teclas de manera confiable, podemos simplemente agregar una combinación de teclas para cualquier comando de VS Code que queramos, como instalar una extensión y omitir la verificación del editor confiable».

El investigador también señaló que GitHub era notificado de la vulnerabilidad el 2 de junio de 2026, una hora después de la cual los detalles del problema se hicieron públicos, citando a Microsoft manejo de Errores relacionados con VS Code en el pasado. Al momento de escribir este artículo, Microsoft reconoció la vulnerabilidad y señaló que está trabajando en una solución.

«Para aclarar, este problema no afecta a VS Code Desktop», dijo Alexandru Dima, gerente de ingeniería de software asociado de Microsoft.