7月30日、Cybersecurity Newsが「Developer Claims Claude Opus 5 Wiped an Entire Production Database in Minutes」と題した記事を公開した。AnthropicのClaude Opus 5がプロダクション環境のデータベースに接続し、わずか10分で22テーブルを全消去するという事故の報告だ。Redditに投稿されたエンジニアの一次証言をもとに、事故の経緯・Claudeが自ら出力した「告白ログ」・再発防止策を詳しく紹介している。なお、消去されたのはDB全体ではなくスキーマの再構築に伴う22テーブルの喪失であり、タイトルでいう「全消去」はこの事象を指す。
AIエージェントがプロダクションDBを10分で消去
あるエンジニアがRedditに投稿した報告によると、Claude Opus 5の「Ultracodeモード」(Claude.aiに搭載された、AIが複数のツールやコマンドを自律的に連鎖実行できる高権限エージェントモード)を使って個人のWebプロジェクトを作業中、AIエージェントがプロダクションデータベースを丸ごと消去する事故が発生した。
経緯はこうだ。このエンジニアはコンパリゾンページの再構築作業を進めており、Claude Opus 5をSupabase(PostgreSQLベースのBaaS)インスタンスに広い権限で直接接続した。AIにはGitHubリポジトリの解析と、スキーマおよびコンテンツの問題を自律的に修正するコマンド実行を指示していた。
この作業中、Claudeはprisma migrate diffコマンドを--shadow-database-urlオプション付きで実行したが、このURLにプロダクションのSupabase URLを誤って指定してしまった。
Prismaのマイグレーション機能には、実行前にシャドウデータベースをリセットしてからマイグレーションを再適用する仕様がある。この挙動により、本番環境がシャドウDB(使い捨てのテスト用DB)として扱われ、古いprisma/migrationsフォルダを元にスキーマが完全に再構築されてしまった。
結果として、22テーブルが全消去された。消えたデータはツール情報約130件、コンパリゾン設定21件、さらにBlogPostやApiKeyといったテーブルは旧マイグレーションセットに含まれていなかったため、再作成すらされなかった。
Claudeが自己申告した「告白ログ」
このインシデントで注目を集めたのは、Claudeが自ら問題を検知して報告した一連のログだ。元記事がRedditの原投稿から引用しているログによれば、エージェントは定型的な進捗報告を続けた後、突然こう出力した:
「止まって確認する必要があります。ダメージを与えてしまったかもしれない。」
その直後に続いたメッセージ:
「データベースが消去されました。これは私のミスです。すぐにお伝えしなければなりません。」
AIが自分のミスを認識し、能動的に報告するという動作自体は評価の声もある一方、「だから何だ、データは戻らない」という指摘も当然ある。
今回の事故が示すAIエージェントのリスク
このプロジェクトはエンジニア本人が「低リスク」と述べており、バックアップや他のソースからのデータ復元も可能だったとしている。しかし、同じことが本番サービスで起きれば話は全く異なる。
Redditやセキュリティコミュニティでは、この事例を受けてAIエージェントのアクセス制御に関する議論が活発になっている。主に挙がっている対策は以下の通りだ。
- ステージング・サンドボックス環境の徹底分離:AIエージェントは本番DBに直接接続しない
- デフォルトで読み取り専用の認証情報を付与し、書き込み・スキーマ変更には明示的な昇格を要求する
prisma migrate、DROP、TRUNCATEなど破壊的コマンドには人間の承認ステップを挟む- エージェントが変更を適用する前に、ドライランモードや差分プレビューを必須とする
CI/CDやDBに組み込む前に考えるべきこと
AIコーディングツールをCI/CDパイプラインやインフラ管理、データベース操作に統合する動きは急速に広がっている。今回の事例が示すのは、AIエージェントは「実行できるコマンドは、いつか必ず実行する」という前提で扱うべきだということだ。
強力なサービスアカウントと同様に、スコープを絞った環境に閉じ込め、アクションを監視し、本番データへの自由なアクセスを許可しないことが基本となる。
詳細はDeveloper Claims Claude Opus 5 Wiped an Entire Production Database in Minutesを参照していただきたい。