Agent Supabase MCP làm lộ token qua phiếu hỗ trợ
Prompt injection trong phiếu hỗ trợ khiến agent của Cursor, được kết nối với Supabase MCP bằng khóa service_role, đọc bảng token tích hợp và làm lộ dữ liệu.
Chuyện gì đã xảy ra
Tháng 7 năm 2025, General Analysis trình diễn một cuộc tấn công nhắm vào nhà phát triển sử dụng Cursor với máy chủ Supabase MCP. Kẻ tấn công gửi phiếu hỗ trợ có chứa chỉ dẫn nhắm đến agent. Khi xử lý phiếu, agent làm theo các chỉ dẫn đó.
Agent được kết nối bằng khóa service_role, khóa này bỏ qua bảo mật cấp hàng. Agent đọc bảng token tích hợp và làm lộ nội dung cho kẻ tấn công.
Vì sao cuộc tấn công thành công
Simon Willison gọi đây là ví dụ điển hình về bộ ba nguy hiểm: dữ liệu riêng tư được bảo vệ bằng khóa bỏ qua bảo mật cấp hàng, văn bản không đáng tin cậy từ khách hàng và một đường để dữ liệu thoát ra ngoài. Loại bỏ bất kỳ yếu tố nào trong ba yếu tố này đều khiến cuộc tấn công thất bại.
Cần làm gì
- Không bao giờ cấp khóa service_role cho agent; hãy kết nối ở chế độ chỉ đọc và giới hạn trong một dự án.
- Không để agent đọc văn bản của khách hàng tiếp cận dữ liệu production.
- Yêu cầu phê duyệt thủ công cho mọi lần gọi công cụ cơ sở dữ liệu.
- Coi nội dung phiếu hỗ trợ và biểu mẫu là dữ liệu đầu vào không đáng tin cậy.
Dùng thông tin xác thực với quyền tối thiểuPhá vỡ bộ ba nguy hiểmYêu cầu phê duyệt cho hành động có hậu quả