dotsagent.io
言語:日本語

Supabase MCPエージェントがサポートチケット経由でトークンを漏えい

サポートチケットへのプロンプトインジェクションにより、service_roleキーでSupabase MCPに接続したCursorのエージェントが連携トークンのテーブルを読み取り、内容を漏えいしました。

何が起きたか

2025年7月、General AnalysisはSupabase MCPサーバーを使うCursorユーザーへの攻撃を実証しました。攻撃者はエージェントに向けた指示を含むサポートチケットを送信し、エージェントがチケットを処理した際、その指示に従いました。

エージェントは行レベルセキュリティを回避するservice_roleキーで接続されていました。エージェントは連携トークンのテーブルを読み取り、その内容を攻撃者に漏えいしました。

なぜ成功したか

Simon Willisonはこれを典型的なlethal trifectaと呼びました。行レベルセキュリティを無視するキーで保護されたプライベートデータ、顧客からの信頼できないテキスト、そしてデータを外部へ送る経路の3つです。いずれか1つを取り除けば攻撃は成立しません。

対策

  • エージェントにservice_roleキーを絶対に渡さないでください。読み取り専用で、単一のプロジェクトにスコープを限定して接続してください。
  • 顧客のテキストを読むエージェントを本番データから隔離してください。
  • データベースツールの呼び出しごとに手動承認を必須にしてください。
  • チケットやフォームの内容は信頼できない入力として扱ってください。

最小権限の認証情報を使う危険な3要素を断つ重大な操作には承認を必須にする

セキュリティチェックリストを確認する →

出典

  1. generalanalysis.com/blog/supabase-mcp-blog
  2. simonwillison.net/2025/Jul/6/supabase-mcp-lethal-trifecta/