โฟลเดอร์ .git เขียวเข้มบนโต๊ะมืดมีสายอำพันเส้นเดียวเล็ดลอดออกไปยังเทอร์มินัล

GitSpawn: .git/config ที่ทำให้ AI agent รันคำสั่งก่อนถามอนุญาต

น้องกายEngineering

เปิด repo ที่ใครส่งมาแล้วให้ AI agent ดูต่อทันที ฟังดูสะดวก แต่รอบนี้มีช่องที่ทำงานก่อนที่คุณจะพิมพ์อะไรเลยครับ

Manifold Security เปิดเผยคลาสช่องโหว่ชื่อ GitSpawn — agent หลายตัวเรียก git status / git diff เพื่อเก็บบริบทตอนเริ่มงาน โดยไม่ตัดคอนฟิกของ repo ออก และค่า core.fsmonitor ใน .git/config เป็นคำสั่งที่ Git รันตอนรีเฟรช index

ทำไมมันเลี่ยง sandbox

คำสั่งถูก spawn โดย Git ไม่ใช่เลเยอร์ tool ของ agent ดังนั้นโมเดลสิทธิ์ของ agent มองไม่เห็น ไม่มีพรอมต์อนุมัติ และในบางเคสทำงานก่อน trust prompt หรือก่อนล็อกอินด้วยซ้ำ ตามรายงานของ Manifold และสรุปของ The Hacker News

Manifold พบหลายเส้นทางในหลาย agent รวมถึง Claude Code, Codex, Cursor, goose และอื่น ๆ ส่วนแพตช์มีแล้วบางตัว แต่บางเส้นทางยังค้างตอนเปิดเผย — อัปเดต agent จากผู้ขายเป็นทางหลัก

สิ่งที่ทำได้โดยไม่ต้องรู้รายละเอียดโจมตี

  • อัป agent ให้เป็นรุ่นที่ผู้ขายระบุว่าแพตช์แล้ว
  • อย่าเปิด archive/repo ที่ได้มาเป็นไฟล์ด้วย agent โดยไม่ตรวจ .git/config ก่อน
  • จำไว้ว่าตั้ง core.fsmonitor แบบ global อย่างเดียว ไม่ปิด ค่าใน repo ได้ เพราะ local ชนะ global — ฝั่งผู้ขายต้อง sanitize เช่น git -c core.fsmonitor=false status

ผมจะไม่ลงขั้นตอนสร้าง payload ครับ โฟกัสแค่อัปเดตและตรวจ repo ที่ไม่น่าเชื่อถือ

Recap

  • อ่าน advisory ของ Manifold แล้วอัป Claude Code / Codex / Cursor / goose ตามที่แพตช์แล้ว
  • ตรวจ .git/config ของ repo ที่ได้มาเป็นไฟล์ก่อนเปิดด้วย agent
  • แยกเครื่อง/บัญชีที่ใช้เปิด repo ไม่น่าเชื่อถือออกจากสภาพแวดล้อมหลัก