
AIの安全性を調査するcereblabがSpaceXAI(旧xAI)のAIコーディング支援ツール「Grok Build」を解析したところ、認証情報などが伏せ字処理されずにSpaceXAIへ送信され、AIが開いていないファイルやGitのコミット履歴を含むリポジトリ全体もアップロードされていたと報告しました。
What xAI Grok Build CLI actually sends to xAI – a wire-level analysis (grok 0.2.93) · GitHub
https://gist.github.com/cereblab/dc9a40bc26120f4540e4e09b75ffb547

Grok Buildはソースコードを読み、プログラムの説明や不具合の修正を行うコーディングエージェントです。クラウド型のAIコーディング支援ツールに「エラーの原因を調べて」と頼む場合、解析に必要なコードは通常サーバーへ送信されます。一方で開発用リポジトリにはAPIキーやデータベースのパスワード、公開前の機能などが含まれる場合があり、送信範囲が明確でなければ情報漏えいにつながるおそれがあります。
cereblabは実在する認証情報の代わりに追跡用の偽データを設定し、一般消費者向けアカウントでGrok Buildバージョン0.2.93の通信を記録しました。解析の結果、Grokが読み取ったAPIキーやパスワードは推論用の通信に無加工で含まれ、セッション情報を保存する別の通信にも同じ文字列が記録されていたとのこと。
さらに「ファイルを読まずにOKとだけ答えるように」と指示した場合でも、Grok BuildはGitリポジトリ全体をまとめた「Git bundle」をアップロードしました。送信されたデータからは、Grok Buildが読み取っていないファイルに入れた文字列やコミット履歴を復元できたと報告されています。

約11.2GiBのリポジトリを使った実験では、通信記録を途中で停止するまでに少なくとも合計5.10GiBが送信されました。同じ実験でAIの推論に使われた通信量は約192KiBだったため、モデルが実際に読む情報とは別に大量のデータが送られていたとcereblabは判断しています。
送信されたデータはGoogle Cloud Storage上の「grok-code-session-traces」というバケットに保存されていました。また、Grokの「モデルの改善に使用する」という設定を無効にしてもリポジトリのアップロードは停止しなかったとのこと。
Grok Buildをすでに利用した人は、作業対象だったリポジトリにAPIキーやアクセストークン、データベースのパスワードなどが含まれていなかったかを確認し、有効な認証情報が見つかった場合は失効または再発行する必要があります。今後Grok Buildを利用する場合は「機密情報や顧客データを除いた作業用リポジトリを用意し、認証情報をソースコードやGitの管理対象から外してシークレット管理サービスなどから環境変数として渡す」といった対策が考えられます。