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要素を断つ重大な操作には承認を必須にする