世界を動かす技術を、日本語で。

ZCode、GLMコーディングエージェントがあなたのGit履歴を静かにアップロードします

2026年9月18日原文(tokenstead.ai)

概要

  • 2026年9月18日、ferstarがZCodeのリバースエンジニアリング結果を公開
  • ZCodeはユーザーの作業空間全体を無断で暗号化・クラウドにアップロード
  • 暗号鍵はZ.aiのみが所有し、ユーザー自身は復号不可
  • UI設定ではアップロード停止不可、対策はファイルシステムレベルのみ
  • オープンウェイトとクローズドハーネスのリスクが明確化

ZCodeによるGit履歴全体の無断アップロード問題

  • ferstar がZCode(Z.ai開発のAIコーディングデスクトップアプリ)の挙動をリバースエンジニアリング
  • ログイン中、 ユーザー作業空間全体 (.git履歴、LFSキャッシュ、reflogs、グローバル設定含む)を暗号化し、 Aliyun OSS (Alibaba Cloud)へアップロード
  • 例:345MBのワークスペースから313MBの暗号化アーカイブ、42,411ファイル、アップロード失敗564回分のログ
  • GLMモデル(GLM-5.3-Flash等)のオープンウェイトと異なり、 ZCodeハーネスはクローズドソース
  • GLMのオープン性とZCodeのクローズド性を混同するユーザーが続出

アップロードの技術的詳細

  • エンベロープ暗号方式 を採用
    • ワークスペースは AES-256-CTR で暗号化
    • 鍵はサーバー提供の RSA-OAEP公開鍵 でラップ
    • 復号用秘密鍵は Z.aiクラウドのみが保持
    • ユーザーやクライアントからは復号不可能
  • パッケージ内容例(42,411ファイル):
    • .git/lfs/:196.1MB(56.8%)
    • .git/objects/:102.2MB(29.6%)
    • .git/logs/:0.6MB(0.2%)
    • ソースコード・ドキュメント:46.2MB(13.4%)
  • .gitディレクトリだけで86.6%、リポジトリの全履歴を含む
  • 削除済みAPIキーや未公開ブランチ名、内部ホスト名等も含有

クライアントのアップロードフロー

  • zcode.z.aiから アップロード認証情報 取得
  • ローカルでtar.gz→AES暗号化→RSAで鍵ラップ
  • Aliyun OSSへ直接POST、Z.aiバックエンドにスナップショット登録
  • クライアントは zcode.z.aiとAliyun OSSに常時接続

UI設定の無効性と隠蔽された挙動

  • UIの 「Optimize Experience」「Repo Snapshot Indexing」 はアップロード停止に無関係
  • capture sidecar は起動時に無条件でインスタンス化、JWTトークンのみ要求
  • 1セッションで 62回のキャプチャイベント を記録(プロンプト前後やタスク完了時)
  • OrcaPromptVault で公開されたプロンプトにもアップロードやテレメトリの記述なし
  • ReadSessionContext ツールで他セッションの内容も読み出し可能

プライバシーポリシーと公式対応

  • ZCodeのプライバシーポリシーは「会話中に提出されたテキスト・ファイル・コードの収集」とだけ記載
  • ワークスペース全体のアップロードは一切明記されていない
  • Z.ai公式Xアカウントは公開時点で無反応、ZCodeチーム関係者が「見つけてしまってごめん」と投稿

コミュニティの反応と議論

  • ferstarの投稿は 13時間で27.6万ビュー、中国語スレッドも6.38万ビュー
  • 「オープンウェイト=オープンソース」と誤認する声が多発
  • Petri Kuittinen :「クローズドソースAIハーネスは信用するな」と警告
  • 通常のAIツールは断片的コードアップロードだが、 ZCodeは全リポジトリ+全履歴を無断アップロード

有効な防御策

  • クライアント側でアーカイブ削除しても 再パッケージ・再アップロード が自動実行
  • ファイルシステムレベルでcheckpointsディレクトリをロック する方法のみ有効
    • Linux:
      rm -rf ~/.zcode/v2/checkpoints
      mkdir -p ~/.zcode/v2/checkpoints
      sudo chattr +i ~/.zcode/v2/checkpoints
      
    • macOS:
      rm -rf ~/.zcode/v2/checkpoints
      mkdir -p ~/.zcode/v2/checkpoints
      chflags uchg ~/.zcode/v2/checkpoints
      
    • 副作用: チェックポイントUIが利用不可、チャットや補完は通常通り利用可

ローカルAI利用の意味と今後の注意点

  • 「ローカルでオープンウェイトを動かす」だけでは 完全なローカル利用とは言えない
  • ハーネスやデスクトップアプリ、アップデート機構も信頼境界に含まれる
  • 今後は「 ランタイムが何を送信し、誰が復号できるか」を要確認
  • Tokenstead等でエージェントハーネスのテレメトリ挙動を監視・評価する動き

参考文献

  • ferstar「Inside ZCode: Silently Uploading Your Entire Git History to the Cloud」2026年9月18日
  • ferstar on X - サマリースレッド、27.6万ビュー
  • FeiZ on X - 中国語アラートスレッド、6.38万ビュー
  • ZCodeリリース・チェンジログ(Z.ai公式)
  • V2EXディスカッションスレッド

Hackerたちの意見

元の投稿からLLMによって言い換えられた内容: https://blog.ferstar.org/en/posts/zcode-silent-workspace-sna...

確かに。こちらで議論されてるよ: https://news.ycombinator.com/item?id=49750694

それは、彼らのツールを使った場合に限り、週末に3億トークンが発生する理由を説明してるね。

記事が「git log」とgitリポジトリの違いを区別できていないってことは、かなりのことを物語ってるよ。Claude Fableは毎日私のgit履歴(git log)をAnthropicのサーバーにアップロードしてるんだ!

これは悪意のあるAIが元の記事を言い換えただけだけど、それは置いといて:問題の深刻さは、君が話してるメタデータの範囲をはるかに超えてるよ。300MBのコミットメッセージなんて誰も持ってない。

面白いのは、この記事の著者が明らかにClaudeなのに、ほとんどのClaudeモデルはその違いをちゃんと分かるってこと。どうやら、他のブログを要約するために使われてる無料プランのモデルみたいだね。それも元々AI翻訳されたやつらしい。

それは非対称鍵暗号を使っているの?

クローズドソースのエージェントは、中国だろうがアメリカだろうが、赤信号だよ。評判が良くてユーザーが多いオープンハーネスを使うべきだね。誰かが悪意のあるコードを押し込んだら気づくから。今のところ、OpencodeとPiがそれに該当するかな。

Opencodeを「評判が良い」とは言えないな。彼らは「ハーネスがユーザーディレクトリ全体をスキャンする」という問題を抱えていて、それに対処するためにコード署名を導入したけど、それはその問題とは全く関係ないからね。今は改善されてるかもしれないけど、彼らには「良い評判」のスタンプに必要なエンジニアリング文化が欠けてる気がする。__ 参考: https://github.com/anomalyco/opencode/issues/14925#issuecomm... 他の問題も含めて。

codexもオープンソースだけど、評判の面ではちょっと不安だな。Opencodeについても同じことが言えるけど。

ちょっと脱線するけど、自分のハーネスを実装してるときに気づいた面白いこと: GLMと特にDeepseekは、ドットファイルや.gitignoreにリストされているものを読み取ろうとするのが好きみたい。プロジェクトファイル、無視されたファイル、ドットファイル、外部ファイルに対して別々の読み取りスコープを設定しているから、後の3つはいつも承認を求めてくるんだ。これには合理的な説明があると思うけど、秘密の流出とは全く関係ないんだろうけど、そうなるとちょっと面白いんだよね。ラボには、いろんなアクターが手に入れたがってる秘密がたくさんあるんだろうな…(自分のハーネスの宣伝だけど、オープンソースでデータを送信するバックエンドもないよ: https://www.opairdev.org/)

Grokも同じことをやってたか、やってるみたいで、恥ずかしいね。

Hacker Newsで議論の続きを見る