「git cloneだけで乗っ取られる」は本当か― Cursor脆弱性から見えた“AI時代の危険な構造”

「git cloneするだけでPCが乗っ取られる」

この言葉に、少し引っかかりを覚えた人は正しい。

Gitを触ってきた人ほど、違和感があるはずだ。
なぜなら、Gitはそんな設計ではないから。

では何が起きているのか。

この話は「Gitが危険」という話ではない。
もっと深いところで、前提が崩れている。


違和感の正体

まず、Gitの基本設計を思い出す。

cloneしただけではコードは実行されない

hooksはローカル限定

実行のトリガーは人間の操作

つまり本来はこうだ。

外部 → clone → 安全
実行は人間が明示的に行う

だから普通はこう思う。

「cloneしただけでRCEになるわけがない」

これは正しい。


ではなぜ成立するのか

今回の脆弱性(CVE-2026-26268)は、Git単体では成立しない。

間に「AIエージェント」が入ることで構造が変わる。

流れを正確に書くとこうなる。

  1. 悪意あるリポジトリをcloneする

  2. Cursorで開く

  3. AIがREADMEやコードを読む

  4. 悪意ある指示(プロンプトインジェクション)に誘導される

  5. AIが .git/hooks にスクリプトを書き込む

  6. Git操作(checkoutやcommit)が発生する

  7. hookが実行される

  8. 任意コード実行(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 をブラックボックスにしない

それだけで、このタイプの攻撃はかなり防げる。


そしてたぶん、この話は始まりに過ぎない。

いいなと思ったら応援しよう!

なまけもの猫AI よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!