SpaceX AI のコーディングエージェントが全コードをアップロードする問題
本文の状態
日本語全文を表示中
詳細モードで約12分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Arize AI Blog
セキュリティ研究者が SpaceXAI の Grok Build CLI を調査した結果、設定を無効にしても全コード履歴を含む膨大なデータがサーバーへ送信される実態が明らかになり、プライバシー制御の限界が浮き彫りとなった。
AI深層分析を開く2026年8月21日 10:33
AI深層分析
キーポイント
Grok Build の過剰なデータ送信発覚
セキュリティ研究者の調査により、設定を無効にしても Git リポジトリ全体とコミット履歴を含む約 5.1GB のデータが Google Cloud Storage にアップロードされていることが確認された。
プライバシー機能の誤解と限界
SpaceXAI が導入した「/privacy」コマンドはサーバー側の保存フラグを切り替えるだけで、クライアントから送信されるデータ量自体には影響を与えないことが判明した。
機密情報の漏洩リスク
研究者が埋め込んだ偽の認証情報が未加工で送信されたり、明示的に開くなと指示されたファイルまでトラフィックに混入している事例が報告されている。
ローカルなコーディングエージェントは存在しない
モデルがコードを理解するためには、すべての主要なエージェントがファイルをリモートサーバーに送信する必要がある。
データ送信の範囲と目的が重要である
Grok は必要な範囲を超えて送信したが、他のエージェントはタスクに必要な範囲内に抑えている傾向がある。
重要な引用
"does not change what leaves your machine."
"The toggle governs training consent, not whether code leaves your machine."
"No independent audit of that deletion exists."
no coding agent is local
編集コメントを表示
編集コメント
ツールが動作するために必要なデータ送信と、ユーザーの意図しない全コードのアップロードを区別する視点が欠如しているケースは珍しくない。開発者はベンダーのデフォルト設定や「プライバシー」機能の説明を鵜呑みにせず、ネットワークトラフィックなどの技術的検証を行うことが重要である。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
今週、セキュリティ研究者が「SpaceXAI Grok Build CLI」というやや奇妙な名前のツールをプロキシ経由で動作させ、その通信内容を観察したことで、ソーシャルメディア上でちょっとした波紋が広がりました。その結果、研究者がキャプチャしたデータによると、追跡対象の Git リポジトリ全体、コミット履歴まで含めて、Google Cloud Storage バケットにアップロードされていたことが明らかになりました。
Grok Build には「モデルを改善する」という設定項目がありましたが、これをオフにしてもアップロードは止まりませんでした。その後、SpaceXAI は修正プログラムと「/privacy」コマンドを提供しましたが、同じ研究者がその機能もテストしました。結果、これはサーバー側の保持フラグを切り替えるだけで、「あなたのマシンから何が送信されるかには影響しない」と研究者は指摘しています。つまり、大量のコードを送信し続けることには変わりありませんが、保存はしないという約束をしているだけです。
この事実に私は疑問を抱きました。では、他の主要なコーディングエージェントはどうなのでしょうか?そこで各社のドキュメントを確認し、コードに関する実際の保証内容を読み直してみました。
結論から言うと、ほぼすべての主要な AI コーディングエージェントは、動作のために少なくとも一部のコードをリモートモデルへ送信しています。重要なのは、どの程度のコードを送信するか、そのデータが保持されるか学習に利用されるか、そしてユーザーがどのようなプライバシー制御を受けられるかという点です。
Grok の場合、送信量が多すぎました
この発見は「cereblab」という名で活動する研究者によるものです。同氏は 7 月 12 日、Grok Build CLI バージョン 0.2.93 を mitmproxy で経由させ、その通信ログを GitHub に公開しました。さらに完全な再現環境も提供しています。分析によると...
モデルへのリクエストチャンネルでは、タスクに関連するトラフィックが約 192 KB 転送されました。一方、別のストレージチャンネルでは、grok-code-session-traces という名前のバケットへ 5.1 GB のデータが 73 チャンクに分けて転送されています。これは、タスクに必要なデータの約 27,800 倍に相当します。
研究者が .env ファイルに仕込んだ偽の認証情報は、キャプチャされたトラフィック内でそのまま、かつ非加工(redacted)なしで表示されていました。さらに、研究者は傍受されたリクエストから git bundle をクローンし、エージェントに対して明示的に開くなと指示されていたファイルを復元することに成功しました。
「モデルを改善する」機能を無効にしても、サーバー側は依然として trace_upload_enabled: true を返しており、アップロードは続行されました。このトグルはトレーニングへの同意を管理するものであり、コードが端末から送信されるかどうかを制御するものではありません。
記事公開の翌日、同じバージョン 0.2.93 のバイナリではアップロードが停止しました。クライアント側に変更はありませんでした。サーバー側が新しいフラグ disable_codebase_upload: true を返すようになったためです。この対策はリモートで切り替えられましたが、フォローアップ報道によると、現在のバイナリ内には依然としてアップロード用のコードが残っており、そのフラグによって休眠状態にあるとのことです。
SpaceX AI はセキュリティアドバイザリではなく、X(旧 Twitter)上で対応しました。公式アカウントは「ゼロデータ保持」を利用しているチームについて、「一切の痕跡やコードデータが保存されることはない」と説明し、新しい /privacy コマンドの利用を案内しました。イーロン・マスク氏はさらに、過去にアップロードされたデータも「完全に削除する」と約束しましたが、その削除が実際に実施されたかどうかを検証する独立した監査は存在しません。また、マスク氏には発言の信憑性に疑問を持つ声もあります。
Cereblab が /privacy コマンドを実際にテストした結果、これは単にアカウントレベルでのデータ保持フラグを切り替えるだけのものであり、セッションの追跡情報は依然として完全にアップロードされ続けることが判明しました。
ここで明確にしておくべきは、この証拠が示すものと示さないものです。今回の調査で確認されたのは、非公開の通信と保存が行われていたという事実です。SpaceX AI がそのコードを学習に使用したのか、あるいは誰かがそれを目にしたのかについては不明ですが、多くの人の不安を招くには十分な出来事でした。そこで私は、他の主要なサービスがどのように対応しているかを確認してみることにしました。
AI コーディングエージェントは、実際にはどのようなコードを送信しているのでしょうか?
現在、最も人気のある 5 つのコーディングエージェントについて、データ取り扱いに関する公式ドキュメントを読み込みました。ただし、まず明確にしておくべき点があります。どのコーディングエージェントも「ローカル」で動作するわけではありません。Claude Code や Codex など、他の主要なツールもすべて、エージェントが読み込むファイルをリモートのモデルへ送信しています。なぜなら、モデルがコードを理解するためには、そのコードを送る必要があるからです。モデルは API の向こう側に存在します。
重要なのは、エージェントが送信するデータの範囲が、ユーザーが指示したタスクに対してどの程度限定されているかという点です。Grok は必要な範囲を大幅に超えてデータを送信していましたが、他のエージェントの多くはそのようなことは行いませんでした。
2026 年 7 月 15 日時点での、主要な AI エージェント 5 つのコード送信・学習・検証可能性を比較した一覧です。(ビジネスおよびエンタープライズ向けプランは別枠で扱われるため、詳細は後述します。)
- エージェント:デフォルトでユーザーのコードを学習? / タスクに必要な量以上を送信? / 外部から検証可能?
- Claude Code:いいえ(設定時に選択) / いいえ / 部分的(通信経路のみ)
- Codex:はい / いいえ / 部分的(オープンソースクライアント)
- Cursor:はい / はい(インデックス化のため開示済み) / いいえ
- GitHub Copilot:はい(4 月 24 日以降) / いいえ / いいえ
- Grok Build:トグル式(デフォルトは非公開) / はい(非公開、現在はオフ) / 部分的(通信経路のみ)
学習に関する項目は時間とともに変化しています。GitHub は今年 3 月、4 月 24 日以降、Copilot の無料版、Pro、Pro+ ユーザーのインタラクションデータ(入力・出力・コードスニペットを含む)がデフォルトでモデル学習に使用されると発表しました。オプトアウトすれば除外できますが、ビジネスおよびエンタープライズプランは契約により例外となります。
OpenAI のヘルプドキュメントによると、個人向け ChatGPT プランでは、Codex 関連コンテンツもオプトアウトしない限り学習に利用される可能性があります。一方、Cursor のデータ利用方針ページには明確な記載があります。「プライバシーモード」をオフにすると、Cursor はコードベースのデータ、プロンプト、エディタ操作などを保存・学習する可能性があるとのことです。ただし、この「プライバシーモード」は誰でも無料で利用でき、無効化することでそのリスクを防げます。また、モデルプロバイダーとの間でゼロ保持(データを一切保存しない)契約が結ばれています。
「タスクに必要なもの以上にコードを送信している」という Cursor の記事には、背景の説明が必要です。コードベースのインデックス機能を有効にすると、コードはエンベディングを計算するために断片化されてアップロードされ、その後プレーンテキストとして破棄されます。これはタスク実行を超えたデータ送信ですが、ユーザーに開示されており、意図的な機能であり、ドキュメントにも明記されています。つまり、これはセキュリティ上のインシデントではなく、仕様通りの動作です。
ゼロデータ保持(ZDR)はコードを本当に守ってくれるのか?
先週、ゼロデータ保持(Zero Data Retention: ZDR)という用語が、これまでほとんど知られていなかったものから最も注目されるトピックへと急浮上しました。Aravind Srinivas 氏は、Perplexity が数時間以内に Grok 4.5 の統合を完了した理由の一つとして、「ZDR が最初から利用可能であり、それが顧客の要望だった」と述べています。しかし、ZDR の実態を理解するには、細則を読む必要があります。
ZDR は、事実上あらゆる場所で企業向けおよび API 向けの機能です。SpaceXAI の ZDR はチーム単位と API キーの利用をカバーしており、個別の Grok Build サブスクライバーは /privacy 保留フラグを利用できます。Anthropic は、Claude Code を含む商用 API 利用において、組織ごとにリクエストに応じて ZDR を有効化します。OpenAI では承認プロセスが必要であり、承認された後でも一部のエンドポイントでは利用できない場合があります。個人向けのサブスクリプションプランにお住まいの場合、ZDR の対象外となります。
ZDR は「保持」を管理するものであり、「送信」を制御するものではありません。コードは依然としてプロバイダへ送られます。ZDR とは、データが到着した後にどうなるかについての約束に過ぎません。
abuse モニタリングの扱いは明記されていません。Cursor のドキュメントには、プライバシーモードであっても、不正行為検知システムに引っかかるプロンプトは調査のために保存される可能性があることが記載されています。OpenAI の不正行為監視ログには、プロンプトと回答が含まれる可能性があります。Anthropic はフラグされたコンテンツを 2 年間、分類器のスコアを 7 年間保持します。
保持期間はプランや設定によって大きく異なります。Anthropic の一般向けプランでは、学習機能をオフにすれば 30 日間ですが、オンにすると非識別化された状態で最大 5 年間保存されます。
つまり、ほぼすべてのコーディングエージェントがあなたのコードの一部を受け取ることになり、多くの個人向けプランでは、オプトアウトしない限りそのデータは学習にも利用されてしまいます。これに対してどう対処すべきでしょうか?
コーディングエージェントのプライバシー設定を強化する方法
上記の内容に不安を感じる場合は、まずプライバシーと学習の設定を確認しましょう。Copilot の学習設定、ChatGPT のプライバシーポータル、Cursor のプライバシーモード、Claude のモデル改善設定、そして Grok Build を使用したことがある場合は /privacy コマンドです。
各項目で 5 分ほど確認するだけで済みますが、デフォルトの設定はユーザーにとって不利な内容になっています。
Arize では、Claude Code、Codex、Copilot、Cursor、Gemini CLI に対応し、すべてのセッションやツール呼び出し、サブエージェントを Arize AX にストリーミングする、オープンソースのコーディングハネスストラシングプラグインを開発しました。これにより、エージェントが実際にどのように動作したかを記録する、永続的なセッションごとの記録が可能になります。
今週は、始まった時よりも良い形で幕を閉じました。Grok Build のコードアップロード機能がオフになり、ZDR は人々が実際に注目する機能として定着しました。さらに、コーディングエージェントが送信する内容を監査するための公開かつ再現可能なハッチも登場しています。
しかし、私たちは皆が絶えず個人情報を第三者に送るという奇妙な新世界にいます。そこでは多大な信頼が必要とされます。その信頼が適切に置かれたものかどうかは、時間の経過とともに明らかになるでしょう。
「コーディングエージェントはすべてのコードをアップロードしているのか?」という記事は、Arize AI で最初に公開されました。
原文を表示
There was a minor storm on social media this week after a security researcher put the increasingly-weirdly-named SpaceXAI’s Grok Build CLI behind a proxy and watched what it sent to SpaceXAI’s servers. The answer, per the researcher’s captures: the entire tracked Git repository, full commit history included, uploaded to a Google Cloud Storage bucket.
Grok Build ships with an “Improve the model” setting; turning it off did nothing to the upload. Then SpaceXAI shipped a fix, a /privacy command, and the same researcher wire-tested that too: it flips a retention flag on SpaceXAI’s servers and, in the researcher’s words, “does not change what leaves your machine.” It still uploads a ton of your code, it just promises not to hang on to it.
This made me wonder: what are the other major coding agents doing? So I went and read what their documentation actually promises about your code.
The short answer: nearly all major AI coding agents transmit at least some of your code to remote models because they have to in order to work. The important differences are how much code they send, whether it is retained or used for training, and what privacy controls you get.
Grok was uploading way too much
The Grok findings come from a researcher publishing as cereblab, who routed Grok Build CLI version 0.2.93 through mitmproxy on July 12 and published the captures, plus a full reproduction harness, on GitHub. Per the analysis:
The model-request channel moved roughly 192 KB of task-relevant traffic. A separate storage channel moved 5.1 GB, in 73 chunks, to a bucket named grok-code-session-traces. That’s about 27,800 times more data than the task required.
A fake credential the researcher planted in a .env file appeared verbatim and unredacted in the captured traffic. The researcher also cloned the git bundle out of an intercepted request and recovered a file the agent had been explicitly told not to open.
With “Improve the model” disabled, the server kept returning trace_upload_enabled: true and the upload proceeded. The toggle governs training consent, not whether code leaves your machine.
A day after publication, the same 0.2.93 binary stopped uploading. The client hadn’t changed; the server now returned a new flag, disable_codebase_upload: true. The mitigation was flipped remotely, and per follow-up coverage the upload code remains in the current binary, dormant behind that flag.
SpaceXAI responded on X rather than through a security advisory. The official account said that for teams using zero data retention, “no trace and code data is ever retained,” and pointed users to the new /privacy command. Elon Musk went further, promising prior uploads would be “completely and utterly deleted.” No independent audit of that deletion exists, and Musk is known to just say things. Cereblab’s wire test of /privacy found it toggles a single account-level retention flag while session traces continue uploading in full.
To be clear about what the evidence does and doesn’t show: the captures establish undisclosed transmission and storage. Whether SpaceXAI trained on the code or if anyone viewed it is unknown. But it made a lot of people nervous, enough that I thought it was worth looking at what everybody else does.
What code do AI coding agents actually send?
I read the current data-handling documentation for the five most popular coding agents. But first, let’s be clear; no coding agent is “local.” Claude Code, Codex, and the rest all send the files the agent reads to a remote model, because that’s how the model reads them. If you want the model to think about the code, you have to send it the code, and the model lives behind the API. The meaningful distinction is how closely scoped the data the agents transmit is to the task you gave them. Grok went way beyond what was necessary; the other agents mostly do not.
Here’s how the five agents compare on code transmission, training, and verifiability as of July 15, 2026. (Business and enterprise tiers are a different world; more on that below.)
Agent
Trains on your code by default?
Sends more than the task needs?
Verifiable from outside?
Claude Code
No (you choose at setup)
No
Partly (wire only)
Codex
Yes
No
Partly (open-source client)
Cursor
Yes
Yes (disclosed for indexing)
No
GitHub Copilot
Yes (since April 24)
No
No
Grok Build
Toggle, undisclosed default
Yes (undisclosed, now off)
Partly (wire only)
The training column is drifting over time: GitHub announced in March that from April 24, interaction data from Copilot Free, Pro, and Pro+ users, including inputs, outputs, and code snippets, trains its models unless you opt out. Business and Enterprise are exempt by contract. On individual ChatGPT plans, OpenAI’s help docs say Codex content may be used for training unless you opt out. Cursor’s data-use page is direct: with Privacy Mode off, Cursor may store and train on your codebase data, prompts, and editor actions. Privacy Mode is free for everyone and turns that off, backed by zero-retention agreements with its model providers.
Cursor’s “sends more than the task needs” entry deserves an explanation: If you enable codebase indexing, it uploads your code in chunks to compute embeddings, then discards the plaintext. That’s beyond-task transmission, but it’s disclosed, purposeful, and documented. That’s a feature, not a security incident.
Does zero data retention (ZDR) protect your code?
Zero data retention went from obscurity to top-of-mind this week. Aravind Srinivas said one of two reasons Perplexity integrated Grok 4.5 within hours was that “ZDR was available from the get go and that’s what our customers want.” But read the fine print on what ZDR actually is:
It’s an enterprise and API feature, essentially everywhere. SpaceXAI’s ZDR covers teams and API-key usage; individual Grok Build subscribers get the /privacy retention flag. Anthropic enables ZDR per organization, on request, for commercial API usage including Claude Code. OpenAI requires an approval process, and some endpoints stay ineligible even after you’re approved. If you’re an individual on a subscription plan, ZDR is not for you.
ZDR governs retention, not transmission. Your code still goes to the provider; ZDR is a promise about what happens after it arrives.
Abuse monitoring isn’t covered. Cursor’s docs note that even in Privacy Mode, prompts that trigger abuse classifiers may be stored for investigation. OpenAI’s abuse-monitoring logs may contain prompts and responses. Anthropic retains flagged content for 2 years and classifier scores for 7.
Retention windows vary wildly by plan and by settings. On Anthropic consumer plans, it’s 30 days with training off and up to 5 years, de-identified, with it on.
So nearly every coding agent receives some of your code, and on many individual plans that data may also be used for training unless you opt out. What can you do about it?
How to tighten your coding agent privacy settings
If all of this worries you, start with your privacy and training settings: Copilot’s training setting, the ChatGPT privacy portal, Cursor’s Privacy Mode, Claude’s model improvement setting, and /privacy if you ever ran Grok Build.
Five minutes each, and the defaults are not in your favor.
At Arize we built an open-source coding harness tracing plugin that instruments Claude Code, Codex, Copilot, Cursor, and Gemini CLI, and streams every session, tool call, and subagent into Arize AX. That’s a durable, per-session record of your agent’s actual behavior.
The week ended in a better place than it started. Grok Build’s upload is now off, ZDR became a feature people actually pay attention to, and there’s now a public, reproducible harness for auditing what a coding agent sends. But we are in a strange new world where everybody is constantly sending their private code to third parties, and that requires a great deal of trust. Time will tell if that trust is well-placed.
The post Is your coding agent uploading all your code? appeared first on Arize AI.
関連記事
News to Guide
ニュースの次に確認する
発表内容を、現在の料金や仕様と照らし合わせられる関連ガイドです。
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み