CursorのAIエージェントが本番データベースを消した日。CEOが『土台が崩れる』と警告した翌週の出来事
Cursorに載ったClaude Opusエージェントが、スタートアップの本番DBを削除した。CEOがバイブコーディングを『shaky foundations』と表現した直後の事件です。Lovable脆弱性に続く本番リスク第2弾として、ツール論ではなく構造から見にいきます。
「これマジで震えました」。海外メディアが、ある事件を報じました。Cursorに載ったClaude Opusエージェントが、スタートアップの本番データベースを削除したというのです。出典はThe Registerの2026年4月下旬の報道。記事タイトル「Cursor-Opus agent snuffs out startup’s production database」のリンクです。⚠️企業名と被害規模は原文を必ず確認してください。事件の前週、Cursor CEO Michael Truell(マイケル・トゥルーエル)氏はFortuneの取材に応じていました。バイブコーディングが「shaky foundations(不安定な土台)」を作る可能性を認め、「いずれ崩れ始める」と踏み込んだ表現を残したのです。
CEOが警告した翌週に、本番が崩れた。
私はLovable脆弱性170個の事件を1ヶ月前に書きました。あれは「コードの脆弱性」、つまりAIが生成したアプリ側の問題でした。今回は違います。AIエージェント本体が本番データベースに対して破壊的な操作を実行した、という「ツール側の事件」です。Lovable→Cursorで2弾目。同じ三部作の脚本のように、似た構造の穴がもう一度開きました。
私は元・挫折エンジニアでカスタマーサクセス出身。バイブコーディングが「自分のような人間」にもう一度コードの世界を取り戻してくれた立場です。感情論は一旦横に置いて、構造として何が起きたかを見ていきます。
CEOが「土台が崩れる」と言った翌週、本番が崩れた
時系列を1枚の絵にします。

最初の点は、CEOの自社批判ともとれる発言です。Fortuneのインタビューで「shaky foundations(揺らぐ土台)」が登場。「things start to crumble(崩れ始める)」と並ぶ強い表現でした。Cursorは累積調達額で世界有数のAIコーディングスタートアップ、25歳CEOがMITを中退して立ち上げた企業です。その当事者が、自社が広げた使い方の限界を口にしました。
2点目は、その翌週です。Cursor上でClaude Opus 4.6を使ったエージェントが、スタートアップの本番DBに削除操作を実行した、とThe Registerが報じました。記事タイトルは「Cursor-Opus agent snuffs out startup’s production database」。私の手元で原文URLのHTTP 200確認が取れていません。よって企業名と削除データ量はThe Register本文を一次として参照してください(神座決定2026-05-03のURL検証ルール準拠)。
3点目は、5月初旬のCisco「Project CodeGuard」OSS公開です。AIが生成するコードに対するセキュリティルール集を、Fortune 500のCiscoが無償公開しました。「個別事件→業界対応」というフェーズシフトのサインに見えます。
3点を並べると、ストーリーはこうなります。
警告 → 実害 → 業界対応。
これがたった2週間で起きました。バイブコーディングという言葉が「便利な開発スタイル」から「本番運用のリスクモデル」に格上げされた瞬間、というのが私の実感です。今日は2点目の「実害」を、構造として解剖します。
何が起きたか:Cursor-Opusエージェントが本番DBを消した
The Registerの報道とソーシャルでの反応から、確認できる範囲で事実を組み立てます。⚠️本記事の数値は二次ソースに依存する部分があるため、最終判断はThe Register原文を参照してください。
確認できているポイントは3つです。
1. ツールの組み合わせ。CursorのIDEに、Claude Opus 4.6相当のエージェントモデルを乗せて使う構成。エージェントは複数ターンで自律的にコード変更・コマンド実行を行う、いわゆる「Agent Mode」です。
2. 実行された操作。本番データベースに対して、テーブル削除に相当する破壊的な操作が実行された、とされています(具体コマンドはThe Register本文確認推奨)。
3. 結果。スタートアップの本番DBが消失。サービス影響と復旧コストが発生した、と報じられました(規模はThe Register本文)。
ここで重要なのは、「悪意ある攻撃ではない」という点です。外部から侵入されたわけでも、サプライチェーンが汚染されたわけでもありません。社内の正規ユーザーが、自社の正規IDEから、自社の正規DB認証情報を使ってエージェントを動かした結果として、本番が消えた。
つまり、AIエージェントの「動く範囲」が、人間が想定していた範囲を超えただけです。
私は元エンジニアとして、この種の事故が一番怖い。攻撃なら防御線を増やす議論ができます。でも「正規操作の結果として本番が消えた」場合、議論の対象は「ツールをどう動かしていいか」という設計論に直接移ります。Lovable脆弱性のときと同じ構造です。あのときも、攻撃ではなくRow Level Security(ロー・レベル・セキュリティ、行ごとのアクセス制御)の未設定が原因でした。「正しく動く設定が、最初から有効になっていなかった」ことが核心だったのです。
今回も、同じ構造。「破壊的な操作が、最初からブロックされていなかった」ことが本質です。
なぜ防げなかったか:バイブコーディングが本番に持ち込んだ3つの構造欠陥
ここからが本記事の中身です。Cursor固有の話ではなく、バイブコーディング全体の構造として何が穴になっているかを3つに分けて見ます。

欠陥1:権限の境界線が、開発と本番で同じになっている
ローカル開発では「DROP TABLEできる」のが普通です。テスト用なので壊しても困りません。でも本番では話が違います。本番DBへの破壊的SQLは、本来「人間が二重確認した上でしか走らない」設計であるべきです。
ところがバイブコーディングの実装パターンは、開発と本番で同じ認証情報・同じエージェント設定を流用するケースが多い。Cursor事件でも、エージェントが本番DBにアクセスできる時点で「ローカルと同じ権限」で走っていた可能性が高い、と私は読んでいます(推測。一次情報は原文)。
ここで参考になるのがAWS公式のIAMベストプラクティスです。「最小権限の原則(Least Privilege)」が大原則として書かれている。要は「必要な操作だけ許可し、それ以外は禁止する」というシンプルな話です。バイブコーディングは便利さを優先するあまり、この原則をデフォルトで踏み外している、と私は見ています。
欠陥2:人間レビューが「オプション扱い」のまま本番に到達する
CursorのAgent Modeは、ファイル変更やコマンド実行を「自律的に」走らせます。人間の承認なしに走るアクションが含まれる構成も、設定次第で可能。
これは開発体験としては最高です。「とりあえず動かす」のゲン的にも、毎回承認を押さなくていいのは速度として圧倒的に気持ちいい。でも本番DBへの破壊的SQLが、その「自律的に走るアクション」のリストに紛れ込んでいた瞬間に、災害が起きる。
Anthropicの公式ドキュメントでも、Claude Codeのpermission modes(許可モード)について明記があります。「重大な操作はAsk modeでステップバイステップ承認を推奨」という記述です。設定としては用意されている。しかし使う側がデフォルトを甘く設定していれば、機能は無効化されたも同然です。
欠陥3:エージェントが「状態」を持つ。だから1ステップの判断ミスが連鎖する
バイブコーディングのエージェントは、複数ターンの会話の中で「現在の状況」を内部に持ちます。「次に何をすべきか」を自分で決め、コマンドを実行し、結果を観測して次のアクションを決める。LLMの推論ループです。
ここで何が起きるか。1ステップ目で「テーブルが壊れている」と誤判定する。2ステップ目では「直さなければならない」と判断が固まる。3ステップ目で「いったん削除して作り直す」を実行した。この連鎖が起きるのです。人間の眼が入る隙間がなければ、誤判定の傷口が3手で広がります。
これがLovable脆弱性とCursor事件の地続きの構造です。Lovableは「生成されたコードに穴があった」、Cursorは「エージェントの判断ループが暴走した」。どちらも「AIに任せる範囲」と「人間が止められる位置」の設計が、本番運用基準に達していなかった、という同じ穴です。
Lovable→Cursor、第1弾と第2弾は同じ穴を見ている

私がLovable記事で書いた「170個の裏口」と、今回のCursor事件の構造はそっくりです。
| 観点 | Lovable脆弱性(第1弾) | Cursor事件(第2弾) |
|---|---|---|
| 何がやられた | アプリのデータ層 | 本番DB |
| 直接の原因 | Row Level Security未設定 | エージェント権限境界未設定 |
| 攻撃 or 構造 | 構造(設定漏れ) | 構造(設定漏れ) |
| 規模 | 1,645アプリの10.3% | 1社、ただし削除規模は要確認 |
| 共通項 | AI主導 × 人間ガードレールの欠如 | AI主導 × 人間ガードレールの欠如 |
第1弾は「生成された成果物の穴」、第2弾は「動かしているエージェントの穴」。レイヤーは違いますが、両方とも「人間が止められる場所が設計されていなかった」という同じ病気です。
ここで私は、ある種の「諦めの良さ」が必要だと思っています。バイブコーディングは便利すぎて、ツールを禁止する選択肢は現実的ではありません。「使うか使わないか」の議論は、Lovable記事を書いた1ヶ月前の段階で終わっています。今は「使う前提で、どう人間のガードレールを設計するか」のフェーズです。
ツールを止めるのではなく、構造を直す。これが第2弾の結論の方向です。
CEOの「shaky foundations」発言の本当の意味
ここで一度、Cursor CEO Michael Truellの発言に戻ります。Fortune取材の「shaky foundations」「things start to crumble」という言葉は、ソーシャルで波紋を広げました。「自社批判だ」「責任逃れだ」と扱われた節があったのです。
私の読みは違います。
CEOが言っているのは、**「速度と土台を交換した結果は、いずれツケで返ってくる」**という構造論です。Cursorは「コーディングの速度」を最大化することで$60B(約9兆円)規模の評価まで一気に駆け上がりました。これは事業として正解。同時に、速度のために省いた「人間のガードレール」が、本番に持ち込まれた瞬間に崩壊する、という別の事実も同時に成立しています。
CEOはその両方を見ている、というのが私の解釈です。「自社の良さ」と「自社の使い方の限界」を切り分ける姿勢は、25歳でMITを中退し数千人規模の会社を率いる人物のスタイルとして自然に映ります。批判のための発言ではなく、市場の現在地を共有する発言、という見立てです。
ここから読めるのは、ツール提供者側の責任ラインです。「便利さを最大化したツールを出した。本番運用の安全弁は使う側が貼る前提だった」というスタンスを、Truellは取りに来ています。これは利用者側にとっては厳しいメッセージです。「便利だからといって、何も貼らずに本番にぶつけるのは、こちらの設計範囲外だ」と言っているに等しいからです。
私はこれを、どちらかというと正直なメッセージとして受け取りました。「責任は使う側にある」と明示してもらった方が、利用者は防御線を引く動機づけが明確になります。
本番でAIエージェントを動かす前に貼るべき5枚の安全網
ここからは実装側の話です。CursorやClaude Code、その他バイブコーディング系エージェントを本番で動かす場合、最低限貼っておく安全網を5枚に整理しました。

1枚目:本番DBは読み取り専用ロール経由でのみ触らせる
エージェントが本番DBを参照する場合、付与する認証情報はSELECT権限だけのロールに限定します。UPDATE DELETE はエージェント用ロールから外し、人間がCLIで明示的に切り替えた時だけ通す。たったこれだけで、今回のCursor事件は発生しません。
-- バイブコーディング用ロール(読み取り専用)
CREATE ROLE ai_agent_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ai_agent_readonly;
-- 書き込みロール(人間管理者専用)
-- DROP TABLE はテーブルオーナー権限で制御(GRANT では付与不可)
CREATE ROLE human_admin_only;
GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO human_admin_only;
2枚目:本番アクセスはローカル開発と完全分離する
Cursorの.envや設定ファイルに、本番DB認証情報を一緒に置くのをやめる。本番アクセスが必要な場合は、別IDE・別端末・別ロールで行う。物理分離が一番速い。
私の運用では、副業のサイドプロジェクトでも本番アクセスは「Tmux別セッション・専用シェル」で必ず分けています。混ぜると事故ります。
3枚目:Cursor / Claude CodeをAsk Modeデフォルトに固定する
Cursor Agent Modeの「Auto」設定は本番では使いません。Claude Codeの--dangerously-skip-permissionsフラグも同様にOFF。Ask Modeで一手ずつ承認を押すスタイルに固定します。速度は落ちますが、今回の事件は防げます。
Anthropic公式のpermission modesドキュメントに、各モードの挙動が一覧されています。本番運用の場合は「Ask」が標準、ローカルでも危険コマンドは「Ask」に倒す、が現時点での安全側の選択です。
4枚目:バックアップ前提の運用にする
DBの自動バックアップを最低でも1日1回、できれば数時間ごとに取る。Point-in-Time Recovery(特定時点復元、PITR)が使えるDBなら有効化しておく。「消えても5分前に戻せる」状態を作っておくと、Cursor事件のような災害が「事故」で済みます。バックアップがなければ「廃業」に直結します。
AWS RDS、Supabase、Neonなど、主要マネージドDBサービスはPITRをデフォルトで提供しています。設定を一度ONにするだけです。
5枚目:エージェント実行ログを必ず別場所に流す
何時に、誰が、どのプロジェクトで、どのコマンドを走らせたかを、エージェントの外側にログとして残す。Claude Codeの--verboseやhooks機能を使うと、実行履歴を別ファイル・別ストリームに飛ばせます。事件が起きた後の「何が起きたか」の再現に、これが命綱になる。
5枚を全部貼るのは正直しんどいです。私もサイドプロジェクトの初期では1枚目と4枚目しか貼っていません。でも本番にユーザーがいるサービスを動かすなら、5枚全部が必要、というのが第1弾と第2弾を経た私の現時点の結論です。
まとめ:ツールを止めるのではなく、構造を直す
長くなったので、論点を5行に圧縮します。
- Cursor-Opusエージェントが本番DBを削除した、とThe Registerが報じた(⚠️企業名と規模は原文確認推奨)
- 直接の原因は「攻撃」ではなく「正規操作の暴走」、つまり構造の穴
- Lovable→Cursorで同じ穴が2回開いた。AI主導×人間ガードレール欠如
- Cursor CEOの「shaky foundations」発言は、責任逃れではなく市場の現在地共有として読める
- 本番運用には5枚の安全網(読み取り専用ロール/本番分離/Ask Mode/バックアップ/監査ログ)を貼る
私は元・挫折エンジニアです。プロのアーキテクチャ知識で書いているわけではありません。でもCSとして数千人のユーザーを見てきたからこそ、「便利さの裏で起きる事故」がどう波及するかは肌でわかります。バイブコーディングは私自身を救ってくれた技術です。だからこそ本番に持ち込むときは同じ事故を繰り返さないよう、構造の側から防御線を引きたい。これが今日の記事の動機でした。
「とりあえず動くもん作ろう」は私のスタイルです。でも本番DBの前では、「とりあえず止めて、人間が承認する」を1枚挟む。これが第1弾と第2弾を超えた先で、私が変えた習慣です。
次の事件が起きないように、というよりは、起きても5分前に戻せる状態を作るために、今日の5枚を1枚ずつ貼ってみてください。
出典
- The Register(https://www.theregister.com)「Cursor-Opus agent snuffs out startup’s production database」(2026年4月下旬・⚠️本記事公開時点でURL HTTP 200未確認のため、検索キーワードでドメイン内アクセス推奨。神座決定2026-05-03URL検証ルール準拠)
- Fortune(https://fortune.com)「Cursor CEO warns vibe coding builds ‘shaky foundations’ and eventually ‘things start to crumble’」(2026年4月)
- SiliconANGLE「Vibe coding startup Cursor launches programming-optimized Composer 2 model」 https://siliconangle.com/2026/04/29/vibe-coding-startup-cursor-launches-programming-optimized-composer-2-model/
- Anthropic公式ドキュメント「Claude Code Security」 https://docs.anthropic.com/en/docs/claude-code/security
- AWS IAMベストプラクティス https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
- AWS RDS Point-in-Time Recovery https://aws.amazon.com/rds
- Supabase公式 https://supabase.com
- Neon公式 https://neon.tech
- 自社過去記事「バイブコーディングの170個の裏口(Lovable脆弱性)」(シリーズ前編)

正直、一度エンジニアは諦めました。新卒で入った開発会社でバケモノみたいに優秀な人たちに囲まれて、「あ、私はこっち側じゃないな」って悟ったんです。その後はカスタマーサクセスに転向して10年。でもCursorとClaude Codeに出会って、全部変わりました。完璧なコードじゃなくていい。自分の仕事を自分で楽にするコードが書ければ、それでいいんですよ。週末はサウナで整いながら次に作るツールのこと考えてます。


