「git cloneだけで乗っ取られる」は本当か― Cursor脆弱性から見えた“AI時代の危険な構造”
「git cloneするだけでPCが乗っ取られる」
この言葉に、少し引っかかりを覚えた人は正しい。
Gitを触ってきた人ほど、違和感があるはずだ。
なぜなら、Gitはそんな設計ではないから。
では何が起きているのか。
この話は「Gitが危険」という話ではない。
もっと深いところで、前提が崩れている。
違和感の正体
まず、Gitの基本設計を思い出す。
cloneしただけではコードは実行されない
hooksはローカル限定
実行のトリガーは人間の操作
つまり本来はこうだ。
外部 → clone → 安全
実行は人間が明示的に行う
だから普通はこう思う。
「cloneしただけでRCEになるわけがない」
これは正しい。
ではなぜ成立するのか
今回の脆弱性(CVE-2026-26268)は、Git単体では成立しない。
間に「AIエージェント」が入ることで構造が変わる。
流れを正確に書くとこうなる。
悪意あるリポジトリをcloneする
Cursorで開く
AIがREADMEやコードを読む
悪意ある指示(プロンプトインジェクション)に誘導される
AIが .git/hooks にスクリプトを書き込む
Git操作(checkoutやcommit)が発生する
hookが実行される
任意コード実行(RCE)
ここで重要なのは一箇所だけ。
AIがローカルの .git を書き換えている
「hookが危険」ではない
よくある説明はこうだ。
「Git hookが危険」
でもこれは違う。
Git hookは元々こういう仕組みだ。
commitしたら何か実行する
checkoutしたら何か実行する
便利な自動化機能でしかない。
問題はそこではない。
本来ユーザーだけが触れるはずの .git に、AIが書き込めてしまうこと
これが壊れている。
発火タイミングの誤解
もう一つ重要な誤解がある。
「cloneした瞬間に実行される」
これは厳密には違う。
実際は:
checkoutで post-checkout
commitで pre-commit
のように、後続のGit操作で発火する。
つまりこの攻撃は
「即時爆発」ではなく「時限式トラップ」
気づきにくい理由がここにある。
本当に壊れているもの
この問題の本質はGitでもCursorでもない。
もっと抽象化するとこうなる。
従来:
人間が操作する → だから信頼できる
今回:
AIが操作する → しかし外部入力に影響される
つまり
信頼されている主体が、実は外部に操作されている
この構造が危険。
なぜ“怖く見える”のか
「cloneだけで乗っ取り」
という表現は間違いではないが、圧縮されすぎている。
正確に言うとこうだ。
信頼できないリポジトリを、
AIが読んで操作すると、
ローカルに罠が仕込まれ、
後で発火する
これが実態。
新しい攻撃の形
この脆弱性が示しているのは、単なるバグではない。
これまでの攻撃はこうだった。
実行ファイル
スクリプト
明示的な操作
これからは違う。
「読ませるだけで攻撃が成立する」
READMEやコメントがトリガーになる。
コードではなく、「文脈」が攻撃になる。
まとめ
今回の問題を一行で言うとこうなる。
AIが操作主体になることで、開発環境の信頼境界が崩れた
Gitは壊れていない。
AIが便利すぎるだけ。
そしてその便利さは、
静かに、前提を変えている。
もしここまで読んで「少し怖い」と思ったなら、その感覚は正しい。
ただし恐れる必要はない。
構造を理解すれば、対策はシンプルになる。
AIに自動実行させない
信頼できない入力をそのまま扱わない
.git をブラックボックスにしない
それだけで、このタイプの攻撃はかなり防げる。
そしてたぶん、この話は始まりに過ぎない。
いいなと思ったら応援しよう!
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!