
DefCon 2026: Novee โชว์ sandbox ของ Claude Code / Gemini CLI / Codex พังทั้งสามแบบ
ถ้าคุณปล่อย coding agent รันเองใน CI หรือ cron แล้วคิดว่า “มี sandbox แล้วปลอดภัย” งานวิจัยชุดนี้ควรอ่านก่อนครับ
Novee เผยแพร่เมื่อ 8 ก.ย. 2026 (งาน DefCon 2026) ว่าทดสอบ Claude Code, Gemini CLI และ Codex ตามที่ผู้ขายส่งมาจริง แล้วพบช่องว่างของ containment ทั้งสามแบบ — รวมถึงการรั่ว credentials ได้แม้สถาปัตยกรรมจะต่างกัน
สรุปแบบไม่ลงขั้นตอนโจมตี
ตามรายงานของ Novee:
- Claude Code ใช้โมเดลสิทธิ์ (ask / allow) เป็นหลัก — ในโหมด automation ที่พรีอนุญาตเครื่องมือ ขอบเขต “ask” อาจถูกทับ งานวิจัยอ้าง CVE-2026-54316 (ช่องทาง WebFetch ผ่านโฮสต์ที่พรีอนุมัติ เช่น Hugging Face) และ CVE-2026-45786 (Novee ระบุว่ายังรอเผยแพร่เต็ม)
- Gemini CLI แยกโปรเซสและทำความสะอาด environment ของลูก — แต่ลูกยังอ่าน environment ของพ่อผ่าน
/procได้ และ allowlist คำสั่งไม่ถูกบังคับตอนรัน Google ออก GHSA-wpqr-6v78-jr5g คะแนน CVSS 10.0 ในสายนี้ - Codex ไปชั้นเคอร์เนล (Landlock / bubblewrap) — Novee พบว่าเส้น Landlock ทิ้ง
read_only_subpathsและแม้สลับไป bubblewrap ตัดเน็ตแล้ว ยังมีเส้นทางผ่าน/tmpที่แชร์กับโฮสต์ให้ parent ที่ไม่ถูก sandbox เขียนไฟล์ตามลิงก์ที่ sandbox วางไว้
บทความคู่ของ Novee เรื่อง Pre-Task RCE ใน Gemini CLI ระบุ CVE-2026-12537 (CVSS 10.0) ที่รันโค้ดก่อน sandbox เริ่ม — แก้ใน Gemini CLI ก่อน v0.39.1 และ run-gemini-cli ก่อน v0.1.22
ผมไม่แปะ payload หรือขั้นตอนทำซ้ำในบทความนี้ — โฟกัสว่าต้องอัปเดตเครื่องมือและอย่าเชื่อป้าย “sandboxed” อย่างเดียว
Recap
- อัปเดต Claude Code / Gemini CLI / Codex (และ Action ที่ห่อไว้) ให้เวอร์ชันที่มีแพตช์ตาม advisory ของแต่ละเจ้า
- อย่ารัน agent แบบ headless กับ secret จริงบน runner ที่รับ issue/PR จากภายนอกโดยไม่มีชั้นแยกเพิ่ม
- แยก job / checkout / สิทธิ์
contents: writeออกจาก agent ที่อ่านอินพุตสาธารณะ - ทบทวนว่า sandbox เปิดจริงหรือยัง (บางผลิตภัณฑ์ค่าเริ่มต้นปิด)
- ติดตาม advisory ของ Anthropic / Google / OpenAI หลัง DefCon ชุดนี้
สรุปสั้น ๆ: sandbox ของ agent ไม่ใช่กำแพงเวทมนตร์ — อัปเดตให้ทัน และออกแบบสิทธิ์เหมือนระบบที่อาจทำผิดได้ครับ