agent ของ Supabase MCP ทำ token รั่วผ่าน ticket ฝ่ายสนับสนุน
prompt injection ใน ticket ฝ่ายสนับสนุนทำให้ agent ของ Cursor ซึ่งเชื่อมต่อกับ Supabase MCP ด้วยคีย์ service_role อ่านตาราง token สำหรับ integration และทำข้อมูลรั่วไหล
เกิดอะไรขึ้น
ในเดือนกรกฎาคม 2025 General Analysis สาธิตการโจมตีนักพัฒนาที่ใช้ Cursor ร่วมกับเซิร์ฟเวอร์ Supabase MCP ผู้โจมตีส่ง ticket ฝ่ายสนับสนุนที่มีคำสั่งมุ่งเป้าไปยัง agent เมื่อ agent ประมวลผล ticket ก็ทำตามคำสั่งเหล่านั้น
agent เชื่อมต่อด้วยคีย์ service_role ซึ่งข้ามการบังคับใช้ความปลอดภัยระดับแถวได้ agent อ่านตาราง token สำหรับ integration แล้วส่งเนื้อหาในตารางให้ผู้โจมตี
เหตุใดจึงโจมตีสำเร็จ
Simon Willison เรียกกรณีนี้ว่า lethal trifecta แบบฉบับตำรา: ข้อมูลส่วนตัวที่ป้องกันด้วยคีย์ซึ่งไม่สนการบังคับใช้ความปลอดภัยระดับแถว ข้อความที่ไม่น่าเชื่อถือจากลูกค้า และช่องทางที่ทำให้ข้อมูลรั่วออกไปได้ การตัดองค์ประกอบใดองค์ประกอบหนึ่งออกจะทำให้การโจมตีไม่สำเร็จ
สิ่งที่ควรทำ
- ห้ามให้ agent ใช้คีย์ service_role ให้เชื่อมต่อแบบอ่านอย่างเดียวและจำกัดขอบเขตไว้ที่โปรเจกต์เดียว
- อย่าให้ agent ที่อ่านข้อความจากลูกค้าเข้าถึงข้อมูล production
- กำหนดให้อนุมัติด้วยตนเองก่อนเรียกใช้เครื่องมือฐานข้อมูลทุกครั้ง
- ถือว่าเนื้อหาใน ticket และฟอร์มเป็นข้อมูลนำเข้าที่ไม่น่าเชื่อถือ
ใช้ข้อมูลรับรองสิทธิ์ขั้นต่ำตัดวงจรสามปัจจัยอันตรายกำหนดให้อนุมัติก่อนการกระทำที่มีผลสำคัญ
EscapeRoute: การหลุดออกจาก sandbox ของเซิร์ฟเวอร์ Filesystem MCP
proxy ของ MCP Inspector เปิดช่องให้รันโค้ดจากเบราว์เซอร์ได้
ทำตามรายการตรวจสอบความปลอดภัย →