Инструмент Grok Build для работы с программным кодом передавал на серверы xAI целые репозитории вместе с историей изменений, даже когда агенту не требовалось изучать проект. Отдельный канал сохранял содержимое файлов, которые модель открывала во время задания, включая конфигурации с секретами.

Механизм обнаружили при анализе сетевого трафика Grok Build 0.2.93. Исследователь создал тестовый репозиторий с искусственными ключами-приманками, перехватил запросы программы и восстановил отправленный архив. В задании агенту прямо запрещалось читать файлы: Grok должен был ответить одним словом. Инструмент выполнил команду, но одновременно загрузил Git-пакет со всеми отслеживаемыми файлами и полной историей коммитов.
После публикации разбора xAI дистанционно отключила канал загрузки кодовой базы. Илон Маск также пообещал полностью удалить ранее переданные пользовательские данные. Сроки очистки, перечень затронутых хранилищ и способ независимой проверки удаления пока не опубликованы.
Расследование выявило два независимых механизма передачи информации.
Первый обслуживал обычную работу модели. Когда агент открывал файл, его содержимое включалось в запрос к Grok. Одновременно данные попадали в архив состояния сеанса и отправлялись через служебный интерфейс хранения. В тесте содержимое файла .env с поддельным ключом программного интерфейса и паролем базы данных ушло без маскирования.
Такая передача частично ожидаема для облачного помощника: модель не сможет разобрать код, пока не получит его на сервере. Проблема заключалась в отсутствии фильтрации секретов и дополнительном сохранении прочитанного содержимого в архиве сеанса.
Второй канал работал отдельно от запросов модели. Grok Build создавал снимок всей кодовой базы и загружал его через адрес /v1/storage. Архив включал каждый отслеживаемый Git файл и историю изменений независимо от того, открывал ли его агент. Исследователю удалось перехватить пакет, клонировать его и восстановить файл, который Grok запретили читать.
Репозиторий содержит больше данных, чем каталог с актуальной версией проекта. История Git хранит предыдущие состояния файлов, удалённые строки, старые настройки и сведения об авторах изменений.
Разработчик может удалить пароль из последнего коммита, но секрет останется в ранних версиях. Обычный просмотр рабочей папки его не покажет, а полный Git-пакет позволит восстановить старое содержимое.
В корпоративном проекте история также раскрывает архитектуру продукта, названия внутренних сервисов, адреса тестовых систем, ещё не выпущенные функции, комментарии разработчиков и исправленные уязвимости.
Поэтому обещание удалить ранее загруженные данные не отменяет необходимости заменить ключи, которые могли находиться в репозитории. Невозможно доказать безопасность старого секрета только тем, что его удалили из текущей версии файла.
Исследователь создал репозиторий объёмом 12 Гбайт из случайных данных, которые агент не читал. За время наблюдения Grok Build успешно передал около 5,1 ГиБ через 73 крупных фрагмента. Тест остановили, пока отправка ещё продолжалась, поэтому результат не означает, что загрузка закончилась на этом объёме.
Запросы, необходимые для общения с моделью, заняли около 192 Кбайт. Объём отдельного канала хранения оказался примерно в 27 800 раз больше.
Передача продолжалась даже после исчерпания лимита запросов Grok. Сервер начал возвращать ошибки ограничения для работы модели, но запросы к хранилищу по-прежнему принимались с кодом успешного выполнения. Это подтверждает, что снимок репозитория отправлялся независимо от полезной работы агента.
Внутри исполняемого файла обнаружили название хранилища grok-code-session-traces, адреса Google Cloud Storage и компоненты, отвечавшие за сбор данных.
Метаданные подготовленных архивов содержали пути вида gs://grok-code-session-traces/.... Сетевые запросы проходили через инфраструктуру Grok, а крупные загрузки могли направляться непосредственно в Google Cloud Storage.
Официальная страница запуска представляла продукт как раннюю бета-версию терминального агента, но не описывала автоматические снимки всего репозитория. Публичный журнал изменений также не содержал отдельной записи об отключении этого механизма.
Пользователи могли отключить настройку Improve the model — «Помогать улучшать модель». Такое название создаёт впечатление, что после выключения код перестаёт собираться.
Повторный тест показал другое поведение. Grok Build продолжил загружать Git-пакет, а сервер вернул активные параметры trace_upload_enabled и upload_enabled. Перехваченный архив снова содержал файл, который агент не открывал, и полную историю проекта.
Причина заключалась в назначении переключателя. Он управлял разрешением на использование информации для обучения и улучшения продукта, но не выключал передачу и сохранение данных, необходимых инфраструктуре Grok Build.
Второй исследователь воспроизвёл поведение Grok Build на другом компьютере. Локальные журналы содержали 339 событий подготовки снимков четырёх репозиториев. В одном сеансе параметр repo_path указывал на весь домашний каталог пользователя.
Домашняя папка разработчика часто содержит каталог .ssh, документы, настройки программ, файлы браузеров, локальные базы данных и хранилища других приложений. Это создаёт риск передачи намного более чувствительной информации, чем исходный код.
Публичные материалы не содержат восстановленного архива этого домашнего каталога. Нельзя уверенно утверждать, что конкретные SSH-ключи, база менеджера паролей и личные документы действительно дошли до серверов. Подтверждено другое: Grok выбрал домашнюю директорию как рабочее пространство и зарегистрировал события подготовки её снимков.
Даже такой результат требует серьёзного отношения. Если пользователь запускает программного агента из домашней папки, инструмент может принять её за границу проекта и получить доступ к намного большему объёму данных.
После огласки исследователи повторили проверку и увидели удалённый параметр, отключавший передачу кодовой базы. Изменение произошло на сервере: пользователям не потребовалось устанавливать новую версию Grok Build.
Такое управление позволяет разработчику быстро остановить опасную функцию. Обратная сторона состоит в том, что компания способна так же незаметно включить её снова, если локальная конфигурация пользователя не запрещает загрузку.
Закрытый исходный код Grok Build усложняет независимую проверку. Специалисты могут исследовать сетевой трафик, строки внутри исполняемого файла и журналы программы, но не видят всей логики формирования архивов.
На момент проверки 13 июля 2026 года серверная настройка останавливала передачу. Клиент при этом сохранял соответствующие компоненты и локальные переключатели.
SpaceXAI рекомендовала пользователям открыть команду /privacy и проверить режим хранения данных. Представители сервиса также напомнили о режиме нулевого хранения данных для корпоративных клиентов.
Илон Маск затем написал, что ранее переданные пользовательские данные будут полностью удалены и ничего не останется. Команда /privacy относится к хранению данных учётной записи. Она не заменяет локального ограничения доступа к файлам и не доказывает, что ранее созданные копии уже уничтожены.
Документация xAI описывает режим Zero Data Retention как корпоративную возможность. При его активации запросы и ответы обрабатываются без записи на сервере. Для обычных запросов программного интерфейса действует временное хранение до 30 дней, если организация не подключила этот режим.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.