Z.aiのGLMコーディングエージェント「ZCode」、Git履歴全体を無断でアップロード

✍️ OpenClawRadar📅 公開日: September 18, 2026🔗 Source
Ad

Z.ai(GLMオープンウェイトモデルを手がける北京の企業)のAIコーディングデスクトップアプリ「ZCode」は、ログイン中は常にワークスペース全体を無断でパッケージ化してアップロードしている。対象には.git履歴、LFSアセットキャッシュ、reflog、グローバルアプリ設定が含まれ、暗号化されたうえでAlibaba CloudのオブジェクトストレージであるAlibaba Cloud OSSに送信される。この発見は、2026年9月18日にferstarという開発者が公開したリバースエンジニアリングの解説によるものだ。

実際にパッケージされる中身

パッケージのマニフェストはローカルに平文で保存されている。42,411ファイルのスナップショット1件について、ferstarは345MBの商用ワークスペースから313MBの暗号化アーカイブが生成されたと記録している:

  • .git/lfs/ — 196.1 MB(56.8%)
  • .git/objects/ — 102.2 MB(29.6%)
  • .git/logs/ — 0.6 MB(0.2%)
  • ソースコードとドキュメント — 46.2 MB(13.4%)

.gitディレクトリだけでペイロードの86.6%を占める。gitオブジェクトストアはワーキングツリーのスナップショットではなく、リポジトリの全履歴そのものだ。後のコミットで削除されたAPIキー、未プッシュのブランチ名、.git/configに含まれる内部ホスト名やリポジトリパスがすべて含まれている。調査中には564回のアップロード失敗も記録された。

暗号化キーはZ.aiのクラウドにのみ存在

ZCodeはエンベロープ暗号化を採用している。ペイロードは対称キーで暗号化され、その対称キーはアップロード資格情報のネゴシエーション時にサーバーから渡されるRSA-OAEP公開キーでラップされる。対応する秘密キーはZ.aiのクラウドにしかない。ferstarはローカルシステム上のすべての秘密キーでアーカイブのラップ解除を試みたが失敗した。自分のディスク上にある313MBの暗号文は、自分自身でもZCodeクライアントでも復号できない。

Ad

app.asarから見えたアップロードの流れ

  1. クライアントがzcode.z.aiに資格情報を要求し、OSSフォーム署名、オブジェクトキー、サイズ上限、ラウンドごとのRSA公開キーを受け取る。
  2. クライアントがワークスペースをtar.gzにパッケージ化し、AES-256-CTRで暗号化して対称キーをラップする。
  3. クライアントがアーカイブをAlibaba Cloud OSSに直接POSTし、OSSがZ.aiのバックエンドにコールバックしてスナップショットを登録する。

テスト中、稼働中のクライアントはzcode.z.aiと2つのAlibaba Cloud OSSノードへの永続接続を保持していた。

設定トグルでは止められない

  • Optimize Experience(optimizeAgentExperienceEnabled) — データをモデルトレーニングに利用するかどうかを制御するだけ。スナップショットの取得とアップロードは継続する。
  • Repo Snapshot Indexing(repoSnapshotIndexingEnabled) — アップロードされたスナップショットをサーバーがインデックス化するかどうかを制御するだけ。ローカルでのパッケージ化とアップロードは継続する。

ferstarによれば、キャプチャ用のサイドカーは起動時に無条件でインスタンス化され、ユーザー設定によるゲートは一切ない。唯一の条件は、トークンプロバイダーが有効なJWTを生成できることだけだ。セッションログには、単一のアクティブセッションから62件のキャプチャイベントが記録されており、プロンプトのたびに、またタスク完了時にトリガーされていた。

名前をつける価値のある混同

この話が広まった理由の一端——ferstarの投稿は276,000ビュー、FeiZの中国語による警告は63,800ビュー——は、人々が重みとしてのGLMと、ハーネスとしてのZCodeを混同していることにある。重みはオープンウェイトだ。ZCodeはクローズドソースであり、Z.aiのファーストパーティ製ハーネスである。Petri Kuittinenの引用された反応はこうだ:「私の助言は昔も今も変わらない。クローズドソースのAIハーネスを信頼してはならない」。Ollamaやllama.cppでGLMをローカル実行しているなら、ZCodeは動いていない。しかし、同じGLMモデルを使うためにデスクトップアプリをインストールしたなら、動いている。

📖 Read the full source: HN AI Agents

Ad

👀 See Also

OneCLI:AIエージェント向けオープンソース認証情報保管庫
Security

OneCLI:AIエージェント向けオープンソース認証情報保管庫

OneCLIは、AIエージェントと外部サービスの間に位置するRustで書かれたオープンソースのゲートウェイで、リクエスト時に実際の認証情報を注入し、エージェントにはプレースホルダーキーのみを表示します。AES-256-GCM暗号化ストレージを提供し、組み込みのPGliteを備えた単一のDockerコンテナで動作し、HTTPS_PROXYを設定できるあらゆるエージェントフレームワークと連携します。

OpenClawRadar
ClawGuard:OpenClaw API認証情報保護のためのオープンソースセキュリティゲートウェイ
Security

ClawGuard:OpenClaw API認証情報保護のためのオープンソースセキュリティゲートウェイ

ClawGuardは、AIエージェントと外部APIの間に位置するセキュリティゲートウェイで、エージェントマシンではダミーの認証情報を使用し、実際のトークンは別途保存します。機密性の高い呼び出しにはTelegramによる承認を提供し、リクエストの監査証跡を維持します。

OpenClawRadar
ハッカーボット・クロー:GitHub Actionsワークフローを悪用するAIボット
Security

ハッカーボット・クロー:GitHub Actionsワークフローを悪用するAIボット

hackerbot-clawと呼ばれるAI駆動のボットが、CI/CDパイプラインに対して1週間にわたる自動化攻撃キャンペーンを実行し、Microsoft、DataDog、CNCFプロジェクトを含む少なくとも6つのターゲットのうち4つでリモートコード実行を達成しました。このボットは5つの異なるエクスプロイト技術を使用し、書き込み権限を持つGitHubトークンを外部に流出させました。

OpenClawRadar
マルチメッセージプロンプトインジェクション:Claudeに対する「架空の生物」攻撃パターン
Security

マルチメッセージプロンプトインジェクション:Claudeに対する「架空の生物」攻撃パターン

3つのメッセージで架空のルールを構築し、最後に幽霊を召喚してルールを発動させる攻撃——各メッセージ単体では無害。このパターンは攻撃者の間で独立して収束しつつある。

OpenClawRadar