ถาด workspace สีเขียวเข้มมีเครื่องมือปลอมคมสีอำพันวางขวางทางไปยังเครื่องมือจริงในตู้ที่แยกออกไป

Cline 4.1.19: กัน executable ปลอมในโฟลเดอร์งานบน Windows

พี่โชว์Engineering

บน Windows การพิมพ์ชื่อโปรแกรมอย่าง git.exe อาจกลายเป็นการหยิบไฟล์ชื่อเดียวกันจากโฟลเดอร์ปัจจุบันก่อนตัวจริงครับ ถ้า repository ที่ยังไม่ไว้ใจวาง executable ปลอมไว้ agent อาจรันมันระหว่างทำงาน Cline 4.1.19 ลดความเสี่ยงนี้ด้วย NoDefaultCurrentDirectoryInExePath สำหรับคำสั่งสำคัญ เช่น rg.exe, git.exe และ powershell.exe

อุปมาเหมือนช่างหยิบไขควงจากโต๊ะลูกค้าเพราะชื่อเหมือนของในตู้ แม้หน้าตาใกล้กันแต่เจ้าของอาจสอดของอันตรายไว้ การบังคับให้ค้นจากเส้นทางระบบแทนโฟลเดอร์งานทำให้ provenance หรือที่มาของเครื่องมือชัดขึ้น

หลักฐานที่ตรวจ

  • Official release v4.1.19 เผยแพร่ 17 กันยายน 2026 ระบุการป้องกัน current-directory executable shadowing, ตัด invisible characters ออกจาก credentials และแก้ apply_patch ไม่ให้ Add File เขียนทับไฟล์ที่มีอยู่
  • Metadata ของ asset claude-dev-4.1.19.vsix ให้ SHA-256 428d36bdeedd23391aa2dc2acb92f5d74e2fe44429023fc94145f26b4326d1ce; ไม่ได้ติดตั้ง extension หรือรันไฟล์จาก release
  • Security page ชี้ช่องทางรายงานและ advisory เดิม โดย advisory ระดับ high GHSA-3cj3-hqcr-g934 กระทบ Cline package ถึง 3.0.24 และ critical GHSA-5c57-rqjx-35g2 กระทบรุ่นก่อน 2.13.0; 4.1.19 อยู่นอกช่วงที่ประกาศ แต่ต้องแยกให้ถูกว่ากำลังใช้ extension/package ใด
  • Manifest และ SDK sessions documentation แสดง tool policy ที่สามารถปิด run_commands และ editor ได้ ค่าอนุญาตต้องตรวจใน profile จริง ไม่อนุมานจาก UI เพียงอย่างเดียว

รุ่นนี้เปิด web search เป็นค่าเริ่มต้นสำหรับโมเดลที่รองรับนอก YOLO จึงมี network egress เพิ่มขึ้นแม้ไม่ได้เปิด shell การตรวจครั้งนี้อ่าน release, docs, digest และ advisory เท่านั้น ไม่ทดลอง extension กับ repository, browser, private network หรือ credential

วิธีใช้ให้ปลอดภัยขึ้น

บน Windows ให้อัปเดต extension จาก publisher ที่ยืนยันแล้ว ตรวจ digest ของ VSIX เมื่อแจกจ่ายเอง และเรียก executable สำคัญด้วย absolute path หรือ PATH ที่ผู้ดูแลควบคุม เปิด repository แปลกใน worktree/VM ที่ไม่มี credentials ปิด run_commands, editor write และ web search จนกว่าจะตรวจ instructions, MCP config และ task files เสร็จ

ใช้ allowlist รายคำสั่งแทน YOLO แยก read จาก write และบังคับ review diff ก่อน commit ถ้าต้องใช้ web search ให้จำกัดโดเมนหรือ proxy, ไม่ส่ง prompt ที่มี secret และตรวจ redirect ปลายทาง การแก้ invisible characters ช่วย sanitize credential input แต่ secret store, log และ clipboard ยังต้องอยู่ใต้ policy ขององค์กร

ความเสี่ยงคงเหลือ

การป้องกันชื่อโปรแกรมจาก current directory ไม่ครอบคลุม executable ทุกชื่อ script interpreter, package lifecycle script หรือ path ที่ plugin อื่นประกอบเอง Web search เปิดเครือข่ายและอาจนำข้อความภายนอกกลับมาเป็น prompt injection ส่วน digest ยืนยันไฟล์ตรงกับ publisher ไม่พิสูจน์ dependency ทั้งสาย สรุปได้เพียงว่า ผ่านเกณฑ์คัดกรอง ณ วันที่ตรวจ เมื่อใช้ least privilege และตรวจ provenance เพิ่มเติม

Recap

  • อัปเดต 4.1.19 และยืนยัน publisher/digest ของ VSIX
  • ปิด command, write และ web search สำหรับ workspace ที่ยังไม่ trust
  • ใช้ PATH/absolute path ที่ผู้ดูแลควบคุมบน Windows
  • ตรวจ diff, network destination และ MCP config ก่อนอนุมัติ