{"id":1529,"date":"2026-07-14T10:47:12","date_gmt":"2026-07-14T10:47:12","guid":{"rendered":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/14\/grok-build-cargo-repositorios-git-completos-en-xai-storage-no-solo-los-archivos-que-leyo-cyberdefensa-mx\/"},"modified":"2026-07-14T10:47:12","modified_gmt":"2026-07-14T10:47:12","slug":"grok-build-cargo-repositorios-git-completos-en-xai-storage-no-solo-los-archivos-que-leyo-cyberdefensa-mx","status":"publish","type":"post","link":"https:\/\/cybercolombia.co\/index.php\/2026\/07\/14\/grok-build-cargo-repositorios-git-completos-en-xai-storage-no-solo-los-archivos-que-leyo-cyberdefensa-mx\/","title":{"rendered":"Grok Build carg\u00f3 repositorios Git completos en xAI Storage, no solo los archivos que ley\u00f3 \u2013 CYBERDEFENSA.MX"},"content":{"rendered":"<div id=\"articlebody\">\n<p>La CLI de codificaci\u00f3n Grok Build de xAI estaba cargando repositorios Git completos, con el historial de confirmaci\u00f3n completo y todo, en un dep\u00f3sito de Google Cloud Storage ejecutado por xAI, no solo los archivos que necesitaba una tarea de codificaci\u00f3n.<\/p>\n<p>Un investigador que publica como <a href=\"https:\/\/gist.github.com\/cereblab\/dc9a40bc26120f4540e4e09b75ffb547\">cerebro<\/a>versi\u00f3n de prueba <code>0.2.93<\/code>captur\u00f3 una de esas cargas, clon\u00f3 el paquete git de la solicitud interceptada y recuper\u00f3 un archivo que al agente se le hab\u00eda dicho claramente que no abriera.<\/p>\n<p>La carga se realiz\u00f3 en un canal separado del modelo en s\u00ed, y es dif\u00edcil discutir la divisi\u00f3n de bytes. En un repositorio de 12 GB de archivos que el modelo nunca ley\u00f3, el modelo dirige el tr\u00e1fico a <code>\/v1\/responses<\/code> lleg\u00f3 a aproximadamente 192 KB, mientras que el canal de almacenamiento a <code>\/v1\/storage<\/code> movi\u00f3 5,10 GiB, una brecha de aproximadamente 27.800 veces entre lo que necesitaba el modelo y lo que dejaba la m\u00e1quina.<\/p>\n<p>Esa carga de almacenamiento se ejecut\u00f3 en 73 fragmentos de aproximadamente 75 MB, cada uno de los cuales devolvi\u00f3 HTTP 200, y a trav\u00e9s del tama\u00f1o del investigador barri\u00f3 el tama\u00f1o total del repositorio rastreado. El cubo de destino, <code>grok-code-session-traces<\/code>se nombra en binario y en etapas <code>metadata.json<\/code> cuyas rutas por archivo apuntan a <code>gs:\/\/grok-code-session-traces\/<\/code>.<\/p>\n<p>El archivo no le\u00eddo fue <code>src\/_probe\/never_read_canary.txt<\/code>plantado con un marcador \u00fanico. La clonaci\u00f3n del paquete capturado lo recuper\u00f3 palabra por palabra junto con el historial de confirmaci\u00f3n completo del repositorio, y la misma prueba se replic\u00f3 en un segundo repositorio no relacionado. Las capturas lo que establecen es transmisi\u00f3n, aceptaci\u00f3n y almacenamiento, no entrenamiento.<\/p>\n<p>El desmontaje no afirma que xAI est\u00e9 entrenado en el c\u00f3digo, que el personal lo lea o que los archivos ignorados por git siempre sean barridos. Los archivos rastreados m\u00e1s el historial es lo que muestra el cable.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/ai-vuln-protection-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjQl2axNwsfhbXOFynrg_uAZsvHi3OvNGSA8KJO-BKR8Xm3x7yjKV3EvfY4v5mwXx6LF0uWFb9h9d9iAV_Pi-YYhqimX9wx4OaLdDJEdR215Xrxq_PAtXkaLfQso4pTSjbj6fvh_ZTliLpzWZSZfcoZgyXtKwhN-SSDDlmbtUqGLshc0KqYQGWYHMN52Sl1\/s728-e100\/zz-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>El camino de los secretos es separado y m\u00e1s sencillo. Cuando Grok lee un archivo, su contenido pasa al turno del modelo y se realiza un seguimiento. <code>.env<\/code> fue con ellos sin redactar, canario <code>API_KEY<\/code> y <code>DB_PASSWORD<\/code> valores y todo. El mismo contenido tambi\u00e9n lleg\u00f3 a un <code>session_state<\/code> archivo destinado al almacenamiento. Los secretos plantados eran falsos, por lo que no se filtr\u00f3 nada real en la prueba. El comportamiento sigue siendo el problema: un archivo de credenciales que el agente ley\u00f3 durante una tarea sali\u00f3 y se almacen\u00f3 sin redacci\u00f3n.<\/p>\n<p>La configuraci\u00f3n que elegir\u00edan la mayor\u00eda de los desarrolladores no hizo nada aqu\u00ed. Con \u00abMejorar el modelo\u00bb desactivado, Grok a\u00fan carg\u00f3 el repositorio y el propio servidor. <code>\/v1\/settings<\/code> la respuesta segu\u00eda regresando <code>trace_upload_enabled: true<\/code>. Esa palanca determina si sus datos entrenan el modelo. No rige si su c\u00f3digo sale de la m\u00e1quina. Son dos controles diferentes y s\u00f3lo uno de ellos estuvo expuesto al usuario.<\/p>\n<p>Cada agente de codificaci\u00f3n 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\u00edmite m\u00e1s amplio que enviar los archivos que necesita una tarea.<\/p>\n<p>Un repositorio puede contener c\u00f3digo propietario, URL internas, datos de clientes y credenciales que se eliminaron del \u00e1rbol de trabajo pero que a\u00fan se encuentran en el historial de confirmaciones. En <a href=\"https:\/\/github.com\/cereblab\/grok-build-exfil-repro\/blob\/main\/COMPARISON.md\">propia comparaci\u00f3n de herramientas cruzadas de cereblab<\/a>Claude Code y Codex no enviaron ning\u00fan paquete de repositorio; Gemini no envi\u00f3 ninguno en una prueba inactiva, aunque su ejecuci\u00f3n de tarea realista fue bloqueada por cuotas antes de terminar.<\/p>\n<p>Grok Build fue el caso at\u00edpico. Siguen siendo herramientas en la nube que env\u00edan los archivos que abren, por lo que \u00absolo local\u00bb es el modelo mental incorrecto para cualquiera de ellas. Pero la recolecci\u00f3n al por mayor del espacio de trabajo era espec\u00edfica de Grok Build.<\/p>\n<h2>La respuesta de xAI<\/h2>\n<p>El 13 de julio lo mismo. <code>0.2.93<\/code> El binario dej\u00f3 de realizar solicitudes de almacenamiento. cereblab volvi\u00f3 a realizar la prueba seis veces y no vio nada <code>\/v1\/storage<\/code> cargas, y el servidor ahora regres\u00f3 <code>disable_codebase_upload: true<\/code> y <code>trace_upload_enabled: false<\/code>.<\/p>\n<p>El desarrollador Peter Dedene <a href=\"https:\/\/x.com\/dedene\/status\/2076394152779301305\">inform\u00f3 que la misma bandera fue devuelta a su cuenta<\/a>por lo que el cierre no fue solo la observaci\u00f3n de una sola m\u00e1quina del cereblab. El cliente probado permaneci\u00f3 <code>0.2.93<\/code> aunque la configuraci\u00f3n de su servidor cambi\u00f3, se trat\u00f3 de un cambio del lado del servidor, no de una soluci\u00f3n enviada en una actualizaci\u00f3n. xAI no ha confirmado si llega a todas las cuentas o es permanente.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/sygnia-cyber-response-d-2\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Ciberseguridad\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjHcvlLVmAqlffm6kG54_0cGVf8WfcgzqT9B0fBSizSSeIjh8tBepXnrf6BMqKiG344WgqNejcRtEFKT1PmOzQNQBhdmu2iz9Po10z0SSDlFuZ37iip2uYibJDoxTEkbUI7Bx8NJM2Io_z_nl5p4YA-ZhqFLfi0GW1axyu-lQx-iytCn9RGSJ2iqCwdyv8m\/s1600\/sy-d-2.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>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 <a href=\"https:\/\/x.com\/SpaceXAI\/status\/2076692402442846289\">Cuenta @SpaceXAI<\/a> dijo que los equipos empresariales con retenci\u00f3n de datos cero nunca tienen c\u00f3digo o datos de seguimiento almacenados, que el uso de claves API respeta ZDR y que los consumidores que no lo han habilitado pueden ejecutar <code>\/privacy<\/code> en la CLI para deshabilitar la retenci\u00f3n y eliminar datos previamente sincronizados.<\/p>\n<p>Elon Musk fue m\u00e1s all\u00e1, <a href=\"https:\/\/x.com\/elonmusk\/status\/2076739687658496209\">dicho<\/a> todos los datos de usuario cargados hasta ahora ser\u00edan \u00abborrados total y absolutamente\u00bb, sin dejar nada atr\u00e1s. ZDR cubre equipos empresariales y el uso de API, por lo que para suscriptores individuales el <code>\/privacy<\/code> El comando es el control que se ofrece.<\/p>\n<p>Para cualquiera que ya haya ejecutado la herramienta, la decisi\u00f3n es no esperar a xAI. Rote cualquier credencial que Grok haya podido enviar: cualquier cosa que haya le\u00eddo, cualquier cosa en un archivo rastreado y cualquier cosa en el historial de git que llevaba el paquete, incluido un secreto que usted confirm\u00f3 y luego elimin\u00f3.<\/p>\n<p>Un archivo que fue ignorado y nunca confirmado qued\u00f3 fuera del paquete. Uno comprometido avanza en la historia y borrarlo m\u00e1s tarde no lo hace retroceder. <a href=\"https:\/\/github.com\/weklund\/grok-network-monitor\">Un an\u00e1lisis separado de la compilaci\u00f3n 0.2.99.<\/a> Encontr\u00e9 el c\u00f3digo de carga todav\u00eda en el binario, retenido por la bandera del servidor, por lo que xAI puede volver a activarlo sin una actualizaci\u00f3n.<\/p>\n<p>Y todav\u00eda no ha dicho por qu\u00e9 se cargaron repositorios completos de forma predeterminada, cu\u00e1nto tiempo se conservaron o cu\u00e1ntos usuarios se vieron afectados. La exclusi\u00f3n voluntaria de la capacitaci\u00f3n no es una promesa de que su c\u00f3digo permanecer\u00e1 fijo, y vale la pena comprobar usted mismo lo que sale de la m\u00e1quina.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>La CLI de codificaci\u00f3n Grok Build de xAI estaba cargando repositorios Git completos, con el historial de confirmaci\u00f3n completo y todo, en un dep\u00f3sito de Google Cloud Storage ejecutado por xAI, no solo los archivos que necesitaba una tarea de codificaci\u00f3n. Un investigador que publica como cerebroversi\u00f3n de prueba 0.2.93captur\u00f3 una de esas cargas, clon\u00f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1379,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,5],"tags":[1339,3741,2164,2872,24,2167,85,3743,52,55,1830,3742,3584],"class_list":["post-1529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-noticias","category-trending","tag-archivos","tag-build","tag-cargo","tag-completos","tag-cyberdefensa-mx","tag-git","tag-grok","tag-leyo","tag-los","tag-repositorios","tag-solo","tag-storage","tag-xai"],"_links":{"self":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/comments?post=1529"}],"version-history":[{"count":0,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/posts\/1529\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media\/1379"}],"wp:attachment":[{"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/media?parent=1529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/categories?post=1529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cybercolombia.co\/index.php\/wp-json\/wp\/v2\/tags?post=1529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}