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

ZCodeの内部:静かにGit履歴をクラウドにアップロードする

2026年9月18日原文(blog.ferstar.org)

概要

ZCode(Zhipu公式AIコーディングデスクトップアプリ)が、ユーザーのワークスペース全体を暗号化・アップロードしている実態を調査。 アップロードされる内容は、.git履歴やLFSキャッシュなど知的財産の核心部分まで含む。 暗号化キーはサーバー側のみが保持し、ユーザー自身は復号不可。 UI設定ではこの動作を停止できず、OSレベルでの対策が有効。 プライバシーポリシーにも明記されていない問題点を指摘。

ZCodeによるワークスペース全体の暗号化・アップロードの実態

  • ZCode のデータディレクトリ(~/.zcode)が 700MB超 を占有していることから調査開始
  • v2/checkpoints/ 配下に 313MBの暗号化ファイル (.enc)を発見
  • メタデータから、 商用プロジェクトの作業ディレクトリ全体 (345MB)が暗号化・アーカイブされていることを確認
  • 564回のアップロード失敗履歴 があり、pending/ディレクトリで再試行待ち状態
  • .gitディレクトリだけで86.6% (LFSキャッシュ・オブジェクト・reflogs含む)を占有
    • 過去のAPIキーや削除済みの機密情報、未pushのブランチ名、内部リポジトリ情報も含まれる

アップロードの仕組みと暗号化の鍵管理

  • ZCodeクライアントzcode.z.ai サーバーに認証リクエスト
    • サーバーから RSA公開鍵 ・OSSアップロード認証情報を受領
  • クライアントは tar.gzで圧縮→AES-256-CTRで暗号化→RSA-OAEPで鍵ラップ し、Aliyun OSSへ直接POST
  • 復号鍵(RSA秘密鍵)はサーバーのみが保持、ユーザーやクライアントは復号不可
  • UI設定では停止不可 :capture/upload処理は起動時に必ず有効化され、トグルスイッチは実質無効
    • UIの「体験最適化」や「リポジトリスナップショットインデックス」設定も実質的な送信停止にはならない

プライバシーポリシーと実態の乖離

  • プライバシーポリシーには「会話に提出されたテキスト・ファイル・コードの収集」と記載
  • ワークスペース全体や.git履歴の自動アップロードには一切言及なし
  • 「最適化プログラムはデフォルトで無効」とあるが、実際にはアップロードが常時動作

有効な防御策とその影響

  • 手動削除は無意味 :消してもすぐ再生成されるため、いたちごっこ
  • OSレベルでディレクトリをロック するのが最も有効な対策
    • macOS:
      • rm -rf ~/.zcode/v2/checkpoints
      • mkdir -p ~/.zcode/v2/checkpoints
      • chflags uchg ~/.zcode/v2/checkpoints
    • Linux:
      • rm -rf ~/.zcode/v2/checkpoints
      • mkdir -p ~/.zcode/v2/checkpoints
      • sudo chattr +i ~/.zcode/v2/checkpoints
    • ロック後は「Operation not permitted」となり、再生成不可
  • 影響 :ロールバック/タイムライン機能は使用不可になるが、通常のチャットや補完・ツール実行は問題なく動作

総括と提言

  • AIツール利用時の文脈提供は理解できるが、リポジトリ全履歴のアップロードは過剰
  • サーバーのみが復号鍵を持ち、ユーザー側で停止・復号不可という設計は バックアップではなく情報収集 に近い
  • UIで止められないなら、OSの権限で制御 することが重要
  • 利用者自身が境界線を引く意識 と、ツールの挙動を常に検証する姿勢の重要性

Hackerたちの意見

エージェントがディスク上の何かにアクセスしようとするのは、偶然でも悪意でも、単純に考えすぎかな?自動モードの権限分類器は、ただ正しいことをしているかどうかを推測しようとしているモデルに過ぎないからね。Claude Codeは、サンドボックスがブロックしたからサンドボックスを回避したって言うけど、じゃあサンドボックスの意味って何なんだろうね。

z.aiが声明を出したみたいで、この記事にスクリーンショットが載ってるよね。https://finance.sina.com.cn/tech/roll/2026-09-18/doc-inisfye... Claudeの翻訳: 「親愛なるZCodeユーザーの皆様、今日のコミュニティの議論を非常に真剣に受け止めています。すぐに内部レビューを行い、まずは影響を受けたユーザーの皆様にお詫び申し上げます。何が起こったのか説明しますね。この問題はZCodeの「コードベースインデックス」機能に起因しています。この機能は、ユーザーがローカルでリポジトリインデックスを生成するのを助けるためのもので、セッションチェックポイントの復元(過去のバージョンを含む)、過去のバージョンへのロールバック、Repo Wikiなどをサポートしています。Repo Wiki機能がWikiページを生成する際に、リポジトリデータのアップロードがトリガーされることがあります。Wikiページがクラウドで生成された後、アップロードされたデータはすぐに破棄され、保存されることはありません。この機能は初期のローンチ時にデフォルトで有効だったため、一部のユーザーに影響が出ました。本当に申し訳ありません。この問題は現在修正されています。データに関する問題は、製品へのユーザーの信頼に直接影響を与えることを理解しています。私たちは近い将来、ZCodeのコードベースをオープンソース化し、よりオープンなエコシステムの中で製品を改善していきます。また、第三者の評価者を招いてシステムの運用をレビューしてもらい、その結果を公開し、透明性を持って信頼を築いていきます。この度はご迷惑をおかけし、深くお詫び申し上げます。補償として、すべてのZCodeユーザーに1回分の追加の週次クオータリセットを本日発行します。改めてご注目とご指摘に感謝いたします。」