
Cline 4.1.19: กัน executable ปลอมในโฟลเดอร์งานบน Windows
บน 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-256428d36bdeedd23391aa2dc2acb92f5d74e2fe44429023fc94145f26b4326d1ce; ไม่ได้ติดตั้ง extension หรือรันไฟล์จาก release - Security page ชี้ช่องทางรายงานและ advisory เดิม โดย advisory ระดับ high
GHSA-3cj3-hqcr-g934กระทบ Cline package ถึง 3.0.24 และ criticalGHSA-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 ก่อนอนุมัติ