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

Claude Code 2.1.292 ปิดช่องอ่านไฟล์หลายชั้น: อัปเดตสำคัญ แต่ plugin และ auto mode ยังต้องคุม

พี่โชว์Engineering

Anthropic ออก Claude Code 2.1.292 เมื่อ 6 ตุลาคม 2026 พร้อม security และ boundary fixes หลายจุดที่ควรอัปเดตเร็ว: network UNC path เคยผ่าน approval/auto-mode prompt บางกรณี, การสลับ symlink ระหว่างอ่าน notebook/PDF บน macOS/Windows อาจพาออกนอกไฟล์ที่อนุมัติ, read-deny path ที่ปรากฏหรือชี้ใหม่กลาง session เคยไม่ถอน project grants/credential injection และ cache ของ managed settings ที่ถูกแก้ไขเคยกระทบ built-in policy plugin ตอน fetch ล้มเหลวครับ

รุ่นนี้ยังแก้ alternate Windows path สำหรับคำสั่งลบ, จังหวะ plugin hooks worker restart และ marketplace command ที่เคยทำงานก่อน managed settings โหลดครั้งแรก จุดร่วมคือ “เวลาหรือ representation เปลี่ยนหลังตรวจสิทธิ์” ซึ่งเป็นบั๊กกลุ่ม TOCTOU/policy ordering ที่ agent runtime ต้องระวังมากกว่าคำสั่ง CLI ทั่วไป

ผมตรวจ release, tag/commit, npm registry, permission docs และ security advisories แบบอ่านอย่างเดียว ไม่ติดตั้ง binary, package, plugin หรือ MCP ใดใน repository จริง ผลคือ ผ่านเกณฑ์คัดกรอง ณ วันที่ตรวจ 2026-10-07 แต่คำนี้หมายถึงมีหลักฐานพอสำหรับ rollout แบบควบคุม ไม่ใช่การรับรองทุก configuration

สรุป 30 วินาที

  • Release v2.1.292 ผูกกับ commit fbe20e0 และ GitHub แสดงเป็น immutable release จาก repository anthropics/claude-code
  • security fix สำคัญคือ UNC/network file reads ต้องไม่ข้าม permission prompt ผ่าน PreToolUse approval หรือ auto mode
  • read-deny path ที่เปลี่ยนกลาง session, symlink swap ระหว่าง read และ cache managed policy ที่ถูกแก้ไขถูกอุดเพื่อรักษา boundary หลัง state เปลี่ยน
  • plugin/marketplace commands ตอน first run ถูกเลื่อนให้รอ managed settings และหลายกรณี hook restart/deny ถูกแก้ไม่ให้ tool วิ่งโดยไม่มี guard
  • ฟีเจอร์ใหม่ --marketplace, Agent effort, mod hooks และ MCP ยังเพิ่ม extensibility ซึ่งต้อง pin publisher, scope และ network แยก
  • ไม่พบประกาศ high/critical ที่ระบุว่ากระทบ 2.1.292 โดยไม่มี mitigation ใน advisory view วันที่ตรวจ แต่ advisory state เปลี่ยนภายหลังได้

ทำไมเรื่องนี้เกี่ยวกับคุณ

Agent coding tool อ่าน source, environment, PDF, notebook, network share และสามารถเรียก shell/plugin/MCP ใน session เดียวกัน การตรวจสิทธิ์พลาดเพียง representation หนึ่ง—เช่น UNC แทน drive path หรือ symlink ที่ถูกสลับหลังผู้ใช้กดอนุญาต—อาจเปลี่ยน “อ่านไฟล์ที่เลือก” เป็น “อ่านไฟล์อีกที่” โดยไม่ต้องมี exploit แบบ memory corruption

เหมือนพนักงานถือคีย์การ์ดที่ รปภ. ตรวจซองเอกสารก่อนเข้าห้อง แต่มีคนสลับเอกสารหลังจุดตรวจ หรือใช้ชื่อประตูอีกแบบที่ระบบไม่รู้ว่าเป็นห้องเดียวกัน การแก้รุ่นนี้เพิ่มการตรวจหลายจังหวะ แต่ทีมยังต้องออกบัตรเฉพาะพื้นที่ ไม่ให้ master key เพราะกลัว popup

องค์กรที่ใช้ managed settings ได้ประโยชน์จาก fix policy cache มากเป็นพิเศษ เพราะ policy ส่วนกลางต้องมีอำนาจเหนือ repository/user plugin หาก cache บนดิสก์ถูกแก้แล้ว fetch server ล้มเหลว runtime ต้อง fail closed ไม่ใช่ถอด built-in policy plugin แล้วทำงานต่อ

ทำงานยังไง: path, policy และเวลาเป็น boundary เดียวกัน

Permission engine ไม่ได้เห็นเพียง string ที่ผู้ใช้พิมพ์ มันต้อง normalize path, resolve symlink, แยก local/UNC, พิจารณา read-deny และติดตามว่า file/link เปลี่ยนระหว่างตรวจและอ่านหรือไม่ หากตรวจต้นทางครั้งเดียวแล้วเปิดไฟล์ทีหลัง attacker อาจสลับปลายทางในช่องว่างนั้น

Read-deny path ที่ “ปรากฏหรือ re-point กลาง session” สะท้อนว่า policy เป็น state สด เมื่อ directory ถูก mount, symlink เปลี่ยน หรือ managed rule โหลดใหม่ runtime ต้องถอน project grants ที่เคยครอบ และหยุด credential injection จากไฟล์ที่ตอนนี้อยู่ในพื้นที่ต้องห้าม ไม่ใช่ถือ approval เก่าไปจนจบ session

UNC path บน Windows เป็น network resource ที่หน้าตาไม่เหมือน local drive แต่การอ่านยังอาจส่ง credential ไป server หรือดึงเนื้อหาภายนอกเข้าบริบท การบังคับ prompt ช่วย visibility แต่ enterprise ควร deny network file path โดย default และเปิดเฉพาะ server/share ที่ยืนยัน

Plugin hooks เป็นชั้น policy เพิ่มเติม รุ่นนี้แก้หลายจังหวะ worker restart, hook failure, next(e) และ tool call ขณะ hook ยังไม่พร้อม หลัก fail closed สำคัญ: ถ้า guard หายหรือยังโหลดไม่ครบ tool ที่มี side effect ต้องรอหรือถูกปฏิเสธ ไม่ใช่ถือว่าผ่าน

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

GitHub release 2.1.292 เผยแพร่โดย repository ทางการ วันที่ 6 ตุลาคม 18:59 UTC, ระบุ commit fbe20e0, แสดง immutable release และ changelog รายการ boundary fixes ข้างต้น ผมยึดข้อความที่ผู้ผลิตระบุ ไม่ตีความทุก bug เป็นช่องโหว่ที่ถูก exploit แล้ว

npm package version 2.1.292 เป็น registry path ที่ทีมติดตั้งจริงควร pin version และตรวจ integrity/provenance ตาม lock/install log ของตน หากใช้ native asset จาก GitHub ให้ตรวจ checksum/signature asset กับ key/channel ที่องค์กรยืนยันก่อนวางใน internal mirror

Permission documentation ยืนยันโมเดล permission และการกำหนด allow/deny; security advisories เป็นช่องติดตาม disclosure เพิ่ม ในวันที่ตรวจไม่พบ known high/critical advisory ที่ประกาศว่ารุ่นนี้กระทบโดยไม่มี mitigation

ผมไม่รัน remote installer, ไม่โหลด plugin, ไม่ต่อ MCP server และไม่ให้ candidate แตะ source/secret/network ของ repository การตรวจจึงเป็น provenance/configuration review ไม่ใช่ penetration test จากหลักฐาน publisher, official repository, tag/commit, registry, permission docs และ advisories รุ่นนี้ ผ่านเกณฑ์คัดกรอง ณ วันที่ตรวจ

เงินและผลกระทบ

การอัปเดต agent CLI อาจกระทบ approval frequency, path access, plugin behavior และ automation ที่เคยพึ่งช่องว่างโดยไม่ตั้งใจ ควร canary กับ test matrix แทน rollout ทั้งบริษัทครั้งเดียว วัด task success, prompt count, denial, false allow, latency และ plugin startup

ค่าใช้จ่ายด้าน security ลดได้หาก fix ป้องกัน secret exposure หรือ destructive path แต่หากทีมแก้ friction ด้วย wildcard allow, disable policy หรือ bypass permissions เราจะซื้อความเร็วระยะสั้นด้วย incident risk ระยะยาว ให้ปรับ workflow แยก read-only/test/publish stage และออก credential ต่อ stage

สิ่งที่ยังไม่ชัดและแหล่งข่าวพูดไม่ตรงกัน

Changelog ให้รายการ bug แต่ไม่เผย exploit precondition, CVE หรือ telemetry exploitation ของแต่ละรายการ จึงบอกไม่ได้จากแหล่งสาธารณะว่ามีการใช้ช่องใดจริงในโลกภายนอก หรือ configuration ไหนเสี่ยงที่สุด ทีมควรถือว่ารุ่นเก่ามี boundary weakness ตามคำอธิบายและอัปเดตโดยไม่แต่ง incident narrative

คำว่า immutable release ป้องกันการเปลี่ยน artifact บางประเภทบน GitHub แต่ไม่ได้แทนการตรวจ checksum ของไฟล์ที่ดาวน์โหลด, npm integrity, dependency tree หรือ internal mirror ทุกองค์กรต้องบันทึก digest ของ artifact ที่ใช้จริง

Auto mode, plan mode, PreToolUse hook, plugin/mod hook, desktop/cloud และ Windows/macOS มีเส้นทางต่างกัน Fix หนึ่ง surface ไม่ได้พิสูจน์ทุก surface ทีมต้องทดสอบระบบที่เปิดใช้จริง รวม reconnect/resume, hook crash และ policy fetch failure

Improved strict sandbox auto-allow สำหรับ interpreter ที่มี environment prefix เพิ่มความสะดวก แต่ environment variable เองเปลี่ยน behavior ได้ จึงต้องทดสอบ deny rules/secret injection และอย่าสรุปว่า “sandboxed” เท่ากับ “ไม่มี network/secret” โดยอัตโนมัติ

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

  1. pin 2.1.292 ใน canary และตรวจ registry integrity หรือ release checksum/signature ตามช่องทางติดตั้งจริง
  2. ใช้ managed settings ล็อก deny rules นอก repository และทดสอบ fail-closed เมื่อ policy server ใช้ไม่ได้/cache ถูกแก้
  3. deny UNC/network shares, home/credential directories และ sensitive mount เป็นค่าเริ่มต้น เปิดเป็นราย path/task พร้อม approval
  4. แยก test fixture สำหรับ symlink swap, read-deny re-point, alternate Windows path และ hook worker restart
  5. audit marketplace/plugin/mod/MCP ก่อนติดตั้ง pin version/digest จำกัด domain, filesystem, shell และ secret แยกต่อ extension
  6. ปิด auto mode สำหรับงานที่แตะ production, publish, account, permission หรือข้อมูลลูกค้า และขออนุมัติใหม่เมื่อ path/branch/context เปลี่ยน
  7. ใช้ credential อายุสั้น scope แคบ ไม่วาง token ใน command line/environment กว้าง และ redact logs/transcripts
  8. ให้ push, release, deploy และ destructive action ผ่าน CI/human gate ที่ตรวจ SHA/destination ซ้ำ

แล้วเราควรทำอะไร

ทีมเดี่ยวควรอัปเดตแล้วรันงานจำลองใน repository ที่ไม่มี secret: local file ที่อนุญาต, denied directory, symlink, network path และ plugin ที่ถูกปฏิเสธ ตรวจว่า prompt/denial ตรงคาดก่อนเปิด workspace จริง

ทีม platform ควรสร้าง policy conformance suite เป็น code ให้รันทุกครั้งที่อัปเกรด agent tool ไม่พึ่ง manual checklist อย่างเดียว Suite ควรจำลอง policy fetch fail, tampered cache, hook crash/restart, resume session และ state เปลี่ยนกลาง turn พร้อมยืนยันว่า tool ไม่วิ่งเมื่อ guard ไม่พร้อม

ทีม security ควร inventory plugin/MCP/marketplace และ credential path ที่ agent มองเห็น ลบ extension ที่ไม่มี owner และตั้ง kill switch ระดับ proxy/identity เพื่อหยุด egress หรือ revoke token โดยไม่รอแก้เครื่องทุกคน

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

Prompt injection จาก source, issue, PDF, notebook หรือ network share ยังชักให้ agent ขอสิทธิ์เพิ่มได้ ผู้ใช้ยังอาจกดอนุมัติผิดเพราะ fatigue และ policy parser ยังมี edge case จาก shell composition, alias, filesystem semantics และ plugin code รุ่นนี้ลดช่องที่รู้แล้ว ไม่ได้พิสูจน์ completeness

Marketplace/plugin/mod/MCP รัน logic ที่ขยาย authority และเปลี่ยนหลัง review ได้หากไม่ pin digest Managed policy อาจกำหนดผิดเอง และ sandbox อาจอนุญาต network/credential ที่ทีมคิดว่าปิดอยู่ ต้องตรวจ effective policy จาก runtime ไม่ดู config file เพียงชั้นเดียว

Cloud/desktop/CLI เก็บ transcript, artifact และ background task ต่างกัน Data retention, notification และ reconnect behavior ต้อง review แยก โดยเฉพาะ routine ที่ publish artifact ส่วนตัวอัตโนมัติและ connector access ที่ยังขอ approval

Recap

  • pin 2.1.292 และตรวจ artifact integrity/provenance
  • test UNC, symlink, re-pointed deny path และ managed-cache failure
  • ให้ hook/policy fail closed ก่อน tool ทำงาน
  • จำกัด plugin, marketplace, MCP, shell, network และ secret แยกชั้น
  • ขอ approval ใหม่เมื่อ state/path/context เปลี่ยน
  • เก็บ conformance suite, audit trail และ kill switch
  • ติดตาม advisories ต่อหลัง rollout

2.1.292 เป็นอัปเดต boundary ที่มีน้ำหนักครับ แต่บทเรียนใหญ่กว่าหมายเลขรุ่นคือ permission ต้องตรวจทั้งชื่อ path, ปลายทางจริง และเวลาที่ state เปลี่ยน—ประตูที่ตรวจเฉพาะตอนเปิดครั้งแรกยังไม่พอสำหรับ agent ที่ทำงานนานหลายขั้น