
Codex CLI 0.159.3 เตือนตั้งค่าความปลอดภัย พร้อมอุดขอบเขต sandbox
Codex CLI 0.159.3 ออกเมื่อ 30 กันยายน 2026 โดยเพิ่มคำเตือนตั้งค่าความปลอดภัยแบบเลือกใช้ให้ local ChatGPT sessions ที่เข้าเกณฑ์ครับ เมื่ออ่านร่วมกับ 0.159.0 จุดสำคัญกว่าหน้าจอเตือนคือการรักษา filesystem denial, ป้องกันโฟลเดอร์ .aws, แยก credential ของ MCP ตอน reconnect และลดข้อมูลอ่อนไหวใน log
สรุป 30 วินาที
- 0.159.3 เป็น patch ล่าสุดที่ตรวจพบใน repository ทางการ เพิ่ม optional security-setup reminders ให้ session บางกลุ่ม ไม่ได้เปลี่ยนคำเตือนให้เป็น sandbox policy อัตโนมัติ
- ฐาน 0.159.0 แก้ approved command ให้ยังคงข้อห้าม filesystem ที่ระบุไว้ และป้องกัน
.awsแม้อยู่ใต้ writable root ซึ่งลดช่องว่างระหว่าง “อนุมัติคำสั่ง” กับ “อนุมัติทุกไฟล์” - changelog ยังระบุการรักษาขอบเขต MCP credential หลัง reconnect และเอา WebSocket headers/tool payloads ออกจาก info logs
- ตรวจ tag, changelog, asset digest และหน้า advisory แบบอ่านอย่างเดียว ไม่ดาวน์โหลดหรือรัน binary/installer กับ repository จริง
- รุ่นนี้ผ่านเกณฑ์คัดกรอง ณ วันที่ตรวจ สำหรับ canary ที่ล็อก version, จำกัด write/network/MCP และมี review ก่อน merge ไม่ใช่การรับรองว่าปลอดภัยแน่นอน
ทำไมเรื่องนี้เกี่ยวกับคุณ
coding agent ต่างจาก autocomplete เพราะมันอาจอ่านไฟล์ เรียก shell ใช้ network และติดต่อ MCP server ได้ ความเสียหายจึงไม่ได้จบที่ “โค้ดผิด” แต่อาจรวมถึงการอ่าน credential, ส่งข้อมูลออกนอกระบบ หรือเปลี่ยนไฟล์ที่ไม่ได้อยู่ในงาน ยิ่ง agent ทำงานนานและข้ามหลาย tool ขอบเขตที่คลุมเครือยิ่งมีราคาแพง
คำสั่งหนึ่งที่ผู้ใช้อนุมัติอาจดูปลอดภัย แต่ถ้าระบบตีความ approval ว่าลบ denial เดิมทิ้ง คำสั่งนั้นจะได้สิทธิ์กว้างเกินเจตนา การแก้ใน 0.159.0 จึงสำคัญเชิงกลไก: approval ควรเพิ่มเฉพาะสิ่งที่ผู้ใช้ยอม ไม่ควรละลายกำแพงส่วนอื่น เหมือน รปภ. เปิดประตูห้องประชุมให้ ไม่ได้แปลว่ายื่นมาสเตอร์คีย์ของอาคารให้ด้วยครับ
การป้องกัน .aws ก็สะท้อนปัญหาจริง นักพัฒนามักวาง credential ไว้ใน home directory แต่บาง sandbox อนุญาต writable root ที่ครอบ directory กว้าง การมีข้อยกเว้นป้องกันโฟลเดอร์ credential ช่วยลดความผิดพลาดหนึ่งชั้น อย่างไรก็ตามยังมี .ssh, cloud config อื่น, .env และ token ใน process environment ที่ต้องจัดการเอง
ทำงานยังไง: permission เป็นชั้น ไม่ใช่สวิตช์เดียว
นึกถึงพนักงานชั่วคราวในออฟฟิศครับ เขาอาจมีบัตรผ่านชั้นทำงาน แต่ไม่มีสิทธิ์ห้องเซิร์ฟเวอร์ ใช้เครื่องถ่ายเอกสารได้แต่เอาเอกสารออกนอกอาคารไม่ได้ และงานบางอย่างต้องให้หัวหน้ากดอนุมัติ Codex ก็ต้องแบ่ง capability แบบนี้
ชั้นแรกคือ filesystem: ระบุ path ที่อ่านและเขียนได้ แยก repository จาก home และ credential directory ชั้นที่สองคือ shell: command บางชุดทำงานใน sandbox ได้ บางชุดต้อง escalation พร้อม target ชัด ชั้นที่สามคือ network: เปิดเฉพาะ domain หรือ proxy ที่จำเป็น ชั้นที่สี่คือ tools/MCP: server แต่ละตัวมี credentials และ action คนละขอบเขต ชั้นสุดท้ายคือ Git policy: branch protection, tests และ review ป้องกันผลลัพธ์ที่ agent เข้าใจผิดแต่ permission อนุญาต
release 0.159.0 บันทึกว่า explicit filesystem denials ยังอยู่เมื่อเตรียม approved commands และ .aws ถูกป้องกันภายใต้ writable roots นอกจากนี้ full changelog กล่าวถึง executor MCP credential boundaries ตอน reconnect และการเอา WebSocket headers กับ tool payloads ออกจาก info logs สี่จุดนี้สัมพันธ์กันตรง “ข้อมูลกับสิทธิ์ต้องไม่ไหลข้ามขอบโดยไม่ตั้งใจ”
ส่วน reminder ใน 0.159.3 เป็น UX guardrail เตือนคนให้จัด setup แต่ไม่แทน enforcement ถ้าผู้ใช้เปิด workspace กว้าง ใส่ token อายุยาว หรืออนุมัติ command โดยไม่อ่าน หน้าจอเตือนไม่สามารถย้อน permission เหล่านั้นให้แคบเองได้
หลักฐานที่ตรวจ
publisher และ repository คือ openai/codex แท็ก rust-v0.159.3 ชี้ release 0.159.3 และเผยแพร่ 30 กันยายน 2026 เราตรวจ release metadata กับ changelog ต้นทาง รวมทั้งหน้า security documentation และ security advisories ณ วันที่ 1 ตุลาคม 2026
GitHub แสดง SHA-256 ของ codex-aarch64-apple-darwin.tar.gz เป็น 51de50a39ea592b5b0a64ae0474548c282181cb6b96d9bd08965a682ae12774c และ digest ของ asset codex-package_SHA256SUMS เป็น ab7eb97abe3b6a6825b84d9d34af296645564e27a64bb4033ee5a8433ddc7245 ค่าเหล่านี้ถูกบันทึกเพื่อเทียบ provenance เท่านั้น รอบตรวจนี้ไม่ดาวน์โหลด ไม่แตกไฟล์ และไม่รันโปรแกรมดังกล่าว
หน้า advisory สาธารณะไม่มีประกาศ high/critical ที่เปิดเผยว่า 0.159.3 ยังได้รับผลโดยไม่มี mitigation ณ จุดตรวจ อย่างไรก็ดี “ไม่มีรายการสาธารณะ” ไม่เท่ากับไม่มีช่องโหว่ และรายการ fix ใน changelog เองบอกว่าขอบเขตสิทธิ์ยังเป็นพื้นที่ที่เปลี่ยนเร็ว
สรุปการคัดกรอง: publisher, tag/version, changelog และ provenance ชัดเจน มีการแก้ด้าน permission/credential/log ที่เกี่ยวข้อง รุ่นนี้จึงผ่านเกณฑ์คัดกรอง ณ วันที่ตรวจ สำหรับการทดลองแบบจำกัดสิทธิ์
วิธีใช้ให้ปลอดภัยขึ้น
ตรึง 0.159.3 และตรวจ checksum จากช่องทางทางการก่อนติดตั้งในเครื่องทดสอบ เริ่มจาก worktree แยกที่ไม่มี production secret ให้ filesystem เขียนได้เฉพาะ repository นั้น และกำหนด deny ของ credential directories อย่าง explicit แม้เครื่องมือจะมี default protection แล้วก็ตาม
ปิด network ก่อน ถ้างานต้องเข้าถึง registry หรือ GitHub ให้เปิดผ่าน allowlist/proxy ตามช่วงเวลา ปิด MCP ทุกตัวแล้วเพิ่มทีละ server ตรวจ command, package/version, environment variables และ tools ที่ expose ใช้ credential แยกต่อ server มี scope แคบและอายุสั้น ทดสอบ disconnect/reconnect ว่าไม่สลับ credential ระหว่าง executor
ให้ destructive command, external message, PR change และ production action ต้องมี human approval เสมอ บังคับ branch protection, secret scan, lint, tests และ review จากระบบภายนอก agent เก็บ audit log แต่ตั้งระดับ log ไม่ให้มี headers, payloads หรือ output ที่มี secret และอย่าคิดว่าการตัดข้อมูลจาก info log ครอบคลุม debug log ทุกแบบ
ความเสี่ยงคงเหลือ
prompt injection อาจมากับ README, issue, web page หรือ output ของ tool แล้วชวน agent ขยายสิทธิ์ ผู้ใช้ยังสามารถอนุมัติผิดเองได้ network ที่เปิดกว้างยังเป็นช่อง exfiltration และ MCP server เป็นซอฟต์แวร์อีกก้อนที่มี supply-chain risk ของตัวเอง
การป้องกัน .aws ไม่ครอบ credential ทุก provider และไม่ช่วยถ้า token อยู่ใน environment หรือไฟล์ที่ตั้งชื่ออื่น Reminder เป็น opt-in/eligible UX ไม่ใช่ policy engine ส่วน release cadence ที่เร็วทำให้ทีมต้องตรวจ breaking behavior และ advisory ซ้ำทุกครั้ง ไม่ควร auto-update ตรง production
เราไม่ได้รัน binary จึงยังไม่ยืนยัน runtime behavior บนระบบปฏิบัติการขององค์กร checksum ยืนยันว่าไฟล์ตรงกับ asset ที่อ้าง ไม่ได้ยืนยันว่าโค้ดภายในปลอดภัย และหน้า advisory อาจมีรายการใหม่หลัง verifiedAt ได้
สิ่งที่ยังไม่ชัด และแหล่งข่าวพูดไม่ตรงกันตรงไหน
release 0.159.3 สั้นและเน้น reminder ขณะที่การเปลี่ยนด้าน security ส่วนใหญ่ที่บทความนี้อธิบายอยู่ใน 0.159.0 จึงต้องอ่านเป็นสาย patch ไม่ควรกล่าวว่า 0.159.3 เพียงตัวเดียว “เพิ่ม sandbox ทั้งหมด” เอกสารความปลอดภัยอธิบายโมเดลการอนุมัติในภาพกว้าง แต่ changelog เป็นหลักฐานเฉพาะ implementation ที่เปลี่ยน
ยังไม่ทราบจาก release note ว่า reminder แสดงกับเกณฑ์บัญชี/เครื่องแบบใดบ้าง หรือองค์กรสามารถบังคับจาก policy กลางได้ละเอียดเพียงใด ต้องตรวจเอกสารและ config ของ deployment จริง อีกทั้งไม่มีผล penetration test อิสระแนบมากับ release นี้
ควรทำอะไร
ผู้ใช้เดี่ยวควรอัปเดตใน disposable worktree แล้วอ่าน diff ทุกครั้ง ทีม platform ควรทำ golden policy สำหรับ filesystem/network/MCP พร้อม test ที่พยายามอ่าน credential และออกนอก allowlist ทีม security ควรเก็บ version inventory และเฝ้า advisory ส่วนผู้บริหารควรถือ merge gate กับ production boundary เป็นข้อบังคับ ไม่โยนความเสี่ยงไปที่กล่อง confirmation ของ agent
Recap
- ตรึง 0.159.3 และตรวจ SHA-256 จากต้นทาง
- คง filesystem deny และกัน credential directories ทุก provider
- ปิด network/MCP ก่อน แล้วเปิดทีละรายการด้วย credential อายุสั้น
- ทดสอบ reconnect, logs และ approval ไม่ให้ข้อมูลหรือสิทธิ์ไหลข้ามขอบ
- บังคับ branch protection, tests, secret scan และ human review ภายนอก agent
- ติดตาม advisory ใหม่หลังวันที่ตรวจ
ประโยชน์ของ release นี้คือกำแพงบางจุดแน่นขึ้นและเตือนคนตรงเวลา แต่ความปลอดภัยจริงยังมาจากขอบเขตเล็ก หลักฐานตรวจย้อนกลับ และสิทธิ์ที่ถอนคืนได้ครับ