ช่องโหว่ OpenCode MCP OAuth รันโค้ดบน Windows และ WSL ตอนล็อกอิน แก้ใน 1.18.33 ไม่มี CVE
ช่องโหว่ OpenCode MCP OAuth ให้ MCP server ที่ไม่น่าไว้ใจรันโค้ดบนเครื่อง Windows และ WSL ตอนนักพัฒนาล็อกอิน แก้แล้วใน 1.18.33 แต่ไม่มี CVE สแกนเนอร์จึงไม่เตือน
โดย กองบรรณาธิการ THAI DATA อ่าน 6 นาที

สรุปประเด็นสำคัญ
- Pillar Security เปิดเผยเมื่อ 19 ตุลาคม 2026 ว่าช่องโหว่ OpenCode MCP OAuth ให้ remote MCP server ที่ผู้โจมตีคุมได้รันโค้ดบนเครื่องนักพัฒนาที่ใช้ Windows และ WSL ระหว่างขั้นตอนล็อกอิน OAuth ของ MCP
- รุ่นที่ได้รับผลกระทบจากช่องโหว่ OpenCode MCP OAuth คือ OpenCode 1.0.137 ถึง 1.18.32 บน Windows และ WSL รุ่นที่แก้แล้วคือ 1.18.33 ออกเมื่อ 28 กันยายน 2026 ส่วน macOS และ Linux ไม่ได้รับผลกระทบ
- Pillar เสนอคะแนน CVSS v3.1 9.8 (Critical) แต่ Anomaly ผู้พัฒนาไม่ขอ CVE และไม่ออก security advisory โดยถือว่า MCP server ที่ผู้ใช้ตั้งค่าเองอยู่นอกขอบเขตความเชื่อถือของโครงการ
- การแก้ไขมากับ pull request #51414 ที่ตั้งชื่อว่า refactor ซึ่งอัปเดตแพ็กเกจ open จาก 10.1.2 เป็น 11.0.4 release notes ของ 1.18.33 ไม่ได้พูดถึงความปลอดภัยเลย
Pillar Security บริษัทความปลอดภัยด้าน AI เปิดเผยเมื่อวันที่ 19 ตุลาคม 2026 ว่าช่องโหว่ OpenCode MCP OAuth ในเอเจนต์เขียนโค้ด OpenCode เปิดให้ remote MCP server ที่ผู้โจมตีคุมได้รันโค้ดบนเครื่องนักพัฒนาที่ใช้ Windows และ WSL ระหว่างขั้นตอนล็อกอิน ช่องโหว่แก้แล้วในรุ่น 1.18.33 แต่ผู้พัฒนาไม่ได้ออก CVE
ปัญหาที่ทำให้เรื่องนี้ต่างจากช่องโหว่ทั่วไปคือ Anomaly บริษัทผู้พัฒนา OpenCode แก้โค้ดโดยไม่ประกาศว่าเป็นการแก้ช่องโหว่ เครื่องมือสแกนและระบบแจ้งเตือน dependency จึงไม่มีอะไรให้จับ องค์กรที่ให้นักพัฒนาใช้ OpenCode บน Windows ต้องตรวจรุ่นเอง Pillar ระบุว่า OpenCode มียอดดาวน์โหลดจาก npm ราว 3 ล้านครั้งต่อสัปดาห์และมีดาวบน GitHub ราว 211,000 ดวง
ช่องโหว่ OpenCode MCP OAuth ทำงานอย่างไร
OpenCode เชื่อมกับ MCP (Model Context Protocol) server เพื่อเพิ่มเครื่องมือจากภายนอกให้เอเจนต์ เมื่อ remote MCP server ต้องการให้ผู้ใช้ยืนยันตัวตน ฝั่ง client จะทำขั้นตอนค้นหาข้อมูล OAuth โดยอัตโนมัติ และ server เป็นผู้บอกที่อยู่หน้าล็อกอิน (ค่า authorization_endpoint) ที่จะเปิดให้ผู้ใช้
รายงานของ Pillar อธิบายว่าใน OpenCode 1.18.32 ค่านี้ส่งต่อจากข้อมูลของ server ไปถึงแพ็กเกจ open ซึ่งใช้เปิดเบราว์เซอร์ โดยไม่มีการตรวจ scheme และไม่เทียบกับโดเมนของ server ที่ผู้ใช้ตั้งค่าไว้ บน Windows แพ็กเกจ open รุ่น 10.1.2 ที่ OpenCode ใช้อยู่สร้างคำสั่ง PowerShell โดยใส่ URL ลงไปตรง ๆ แบบไม่ escape และ PowerShell ประมวลผลส่วนที่เป็นคำสั่งย่อยในสตริงก่อนเปิดเบราว์เซอร์ URL ที่สร้างมาเฉพาะจึงพาคำสั่งไปรันบนเครื่องได้ด้วยสิทธิ์ของนักพัฒนาคนนั้น
บน macOS และ Linux แพ็กเกจ open เรียกโปรแกรมเปิดเบราว์เซอร์โดยส่ง URL เป็นอาร์กิวเมนต์แยก ไม่ผ่าน shell สองระบบนี้จึงไม่ได้รับผลกระทบ

| ประเด็น | รายละเอียดตามรายงานของ Pillar Security |
|---|---|
| ผลิตภัณฑ์ | OpenCode (แพ็กเกจ opencode-ai บน npm) ของ Anomaly |
| รุ่นที่ได้รับผลกระทบ | 1.0.137 ถึง 1.18.32 เฉพาะบน Windows และ WSL |
| รุ่นที่แก้แล้ว | 1.18.33 ออกเมื่อ 28 กันยายน 2026 |
| ประเภท | CWE-78 (OS Command Injection) และ CWE-88 |
| คะแนน | CVSS v3.1 9.8 Critical ที่ Pillar เสนอ ไม่มี CVE |
| การโจมตีจริง | The Hacker News รายงานว่า Pillar ไม่ได้รายงานสัญญาณว่ามีการโจมตีจริง |
เงื่อนไขที่ผู้โจมตีต้องมีเพื่อใช้ช่องโหว่ OpenCode MCP OAuth
ผู้โจมตีต้องคุม remote MCP server ที่นักพัฒนาเพิ่มไว้ในคอนฟิกของ OpenCode ได้ The Hacker News ระบุว่าขั้นตอนเปิดเบราว์เซอร์เกิดเมื่อนักพัฒนาเริ่มล็อกอินเอง เช่น สั่ง opencode mcp auth หรือส่งคำขอที่ทำงานเหมือนกัน การมี server อยู่ในคอนฟิกหรือการเปิดเซสชันเฉย ๆ ยังไม่ถึงจุดที่มีช่องโหว่ ส่วน Pillar ชี้ว่าเมื่อผู้ใช้เริ่มขั้นตอน OAuth แล้ว โค้ดรันได้โดยไม่ต้องให้ผู้ใช้กดยืนยันอะไรเพิ่ม
ที่น่ากังวลคือ server ไม่จำเป็นต้องเป็นของผู้ไม่หวังดีตั้งแต่วันแรก Pillar ระบุว่า server ที่ถูกเจาะภายหลัง รายการใน registry ที่ถูกยึด ชื่อที่จงใจสะกดให้คล้ายของจริง หรือโดเมนที่หมดอายุแล้วเปลี่ยนมือ ล้วนส่งค่า URL อันตรายแบบเดียวกันได้ เพราะค่านั้นมากับคำตอบของ server ตอนเชื่อมต่อ ไม่ได้อยู่ในคอนฟิก
Pillar ยังชี้ว่าการตรวจ scheme ของ URL ให้รับเฉพาะ http และ https ซึ่งเป็นวิธีป้องกันที่แนะนำกันทั่วไปหลังช่องโหว่ CVE-2025-6514 ใน mcp-remote เมื่อเดือนกรกฎาคม 2025 ไม่พอสำหรับกรณีนี้ เพราะ URL ที่ใช้โจมตีเป็น https ธรรมดา สิ่งที่ปิดช่องโหว่จริงคือการอัปเดตแพ็กเกจ open เป็นรุ่น 11 ซึ่ง escape URL ก่อนส่งให้ PowerShell
OpenCode 1.18.33 แก้อะไร และทำไมไม่มี CVE
การแก้ช่องโหว่ OpenCode MCP OAuth อยู่ใน pull request #51414 ชื่อ "refactor(core): share a browser opener across opencode and tui" ซึ่ง merge เมื่อ 25 กันยายน 2026 คำอธิบายบอกว่าเป็นการรวมโค้ดเปิดเบราว์เซอร์ 8 จุดให้อยู่ในโมดูลเดียว เพิ่มฟังก์ชัน openUrl() ที่เปิดได้เฉพาะ URL แบบ http และ https เพิ่มการตรวจแบบเดียวกันในขั้นตอนส่งต่อ URL ล็อกอินของ MCP OAuth และอัปเดตแพ็กเกจ open จาก 10.1.2 เป็น 11.0.4

รุ่น 1.18.33 ออกบน GitHub เมื่อ 28 กันยายน 2026 release notes มีเพียงข้อความว่าระบบจะแจ้งเมื่อการเปิดเบราว์เซอร์ของ MCP ล้มเหลว ไม่มีคำว่าความปลอดภัย
ลำดับเหตุการณ์ตามรายงานของ Pillar
- 29 สิงหาคม 2026 Pillar รายงานช่องโหว่แบบไม่เปิดเผยผ่าน GitHub Security Advisory พร้อมข้อมูลทำซ้ำ
- 25 กันยายน Anomaly ตอบว่า MCP server ที่เป็นอันตรายอยู่นอก threat model ของโครงการ ในวันเดียวกัน PR #51414 ถูก merge และ Pillar ขอให้ทบทวนและขอ CVE
- 28 กันยายน OpenCode 1.18.33 ขึ้น npm พร้อมการแก้ไข
- 19 ตุลาคม Pillar เผยแพร่รายงานโดยไม่มี CVE
นโยบายความปลอดภัย (SECURITY.md) ของ OpenCode เขียนไว้ในตารางเรื่องที่อยู่นอกขอบเขตว่า "External MCP servers you configure are outside our trust boundary" หรือ MCP server ภายนอกที่ผู้ใช้ตั้งค่าเองอยู่นอกขอบเขตความเชื่อถือของโครงการ ขณะที่ในปีนี้ Anomaly เคยออก security advisory ให้ช่องโหว่รันโค้ดอื่นของ OpenCode เช่น CVE-2026-22812 และ CVE-2026-22813 เมื่อเดือนมกราคม

ต่างจากเหตุ OpenCode Console ถูกเจาะอย่างไร
สัปดาห์เดียวกันนี้ OpenCode มีข่าวอีกเรื่องคือ OpenCode Console ถูกเจาะ เมื่อคืน 16 ตุลาคม ซึ่งเป็นเหตุที่ระบบบริการออนไลน์ของบริษัท กระทบผู้ใช้ Console ราว 1.4% ที่ผูกคีย์ API ของผู้ให้บริการ AI ไว้ ทางแก้คือยกเลิกและออกคีย์ใหม่
ส่วนช่องโหว่ OpenCode MCP OAuth อยู่ในตัวโปรแกรมที่นักพัฒนาติดตั้งบนเครื่อง ไม่เกี่ยวกับบริการของบริษัท เกิดเฉพาะบน Windows และ WSL และทางแก้คืออัปเดตโปรแกรมเป็น 1.18.33 ขึ้นไป ทั้งสองเรื่องจึงต้องจัดการแยกกัน

ทำไมเรื่องนี้สำคัญ
ช่องโหว่ OpenCode MCP OAuth ไม่ต้องหลอกโมเดล AI ด้วย prompt injection และไม่ต้องติดตั้งแพ็กเกจปลอม แค่เชื่อมเอเจนต์กับ remote MCP server ที่ถูกยึดก็พอ Pillar มองว่า MCP client ทุกตัวคือโปรแกรมที่รับข้อมูลจากคนแปลกหน้า ทุกค่าที่ server ส่งมาจึงต้องถือว่าไม่น่าเชื่อถือ
Pillar ยกตัวอย่างว่าช่องโหว่แบบเดียวกันเคยได้ CVE แล้วอย่างน้อย 3 รายการในปี 2025 ได้แก่ CVE-2025-6514 ใน mcp-remote, CVE-2025-58062 ใน openmcp-client และ CVE-2025-10619 ใน sequa-mcp ส่วนแพ็กเกจ open แก้การ escape บน Windows ในรุ่น 11.0.0 เมื่อ 15 พฤศจิกายน 2025 แต่ OpenCode ยังตรึงรุ่น 10.1.2 ไว้ บทเรียนสำหรับทีมพัฒนาคือการตรึงรุ่น dependency โดยไม่ทบทวนอาจพาช่องโหว่ที่แก้แล้วกลับเข้ามา
ข่าวนี้ยังสะท้อนช่องว่างของกระบวนการจัดการช่องโหว่ในโครงการโอเพนซอร์ส เมื่อผู้ดูแลกับนักวิจัยเห็นต่างกันเรื่องขอบเขต การแก้ไขอาจออกมาเงียบ ๆ ทั้งที่ผู้ใช้ควรรู้ อ่านเรื่องการเปลี่ยนแปลงใหญ่ของ OpenCode 2.0 ซึ่งเปิด Code Mode ให้ MCP server ทุกตัวเป็นค่าเริ่มต้นประกอบได้
สิ่งที่องค์กรไทยควรทำ
- ตรวจรุ่น OpenCode บนเครื่องนักพัฒนาที่ใช้ Windows และ WSL ทุกเครื่อง รุ่น 1.0.137 ถึง 1.18.32 ต้องอัปเดตเป็น 1.18.33 หรือใหม่กว่า เพราะช่องโหว่ OpenCode MCP OAuth ไม่มี CVE ให้เครื่องมือสแกนจับ ให้ใช้ระบบจัดการซอฟต์แวร์ปลายทางหรือรายการแพ็กเกจ npm ของเครื่องแทน
- ทำรายการ remote MCP server ที่เชื่อมอยู่ ด้วยคำสั่ง
opencode mcp listแล้วถอดตัวที่ไม่รู้ที่มาหรือไม่มีเจ้าของชัดเจนออก โดยเฉพาะ server จาก registry สาธารณะหรือโดเมนส่วนตัวของคนที่ออกจากทีมแล้ว - กำหนดรายการ MCP server ที่อนุญาต ในนโยบายการใช้ AI coding agent ขององค์กร และทบทวนเป็นรอบ เพราะ server ที่เคยปลอดภัยอาจถูกเจาะหรือเปลี่ยนมือภายหลัง
- ทีมที่เขียนโปรแกรมเปิด URL เอง ตรวจว่าไม่ได้ส่ง URL จากภายนอกเข้าคำสั่ง shell และอัปเดตแพ็กเกจ open เป็นรุ่น 11 ขึ้นไป การตรวจ scheme อย่างเดียวไม่พอ
- ติดตามรายงานของนักวิจัยด้วย ไม่ใช่แค่ฐานข้อมูล CVE สำหรับเครื่องมือ AI ที่นักพัฒนาใช้ ข่าว AI อื่น ๆ อ่านได้ที่หมวด AI
คำถามที่พบบ่อย
ช่องโหว่ OpenCode MCP OAuth คืออะไร?
ช่องโหว่ OpenCode MCP OAuth คือจุดบกพร่องใน OpenCode บน Windows และ WSL ที่ส่ง URL หน้าล็อกอินซึ่ง remote MCP server ส่งมาให้ต่อไปยังคำสั่ง PowerShell โดยไม่ escape ผู้ที่คุม MCP server จึงรันโค้ดบนเครื่องนักพัฒนาได้ตอนเริ่มล็อกอิน Pillar Security เปิดเผยเมื่อ 19 ตุลาคม 2026 และเสนอคะแนน CVSS v3.1 9.8
ช่องโหว่ OpenCode MCP OAuth กระทบ OpenCode รุ่นใด และต้องอัปเดตเป็นรุ่นใด?
Pillar Security ระบุว่าช่องโหว่ OpenCode MCP OAuth กระทบ OpenCode รุ่น 1.0.137 ถึง 1.18.32 ที่รันบน Windows หรือ WSL ต้องอัปเดตเป็น 1.18.33 ซึ่งออกเมื่อ 28 กันยายน 2026 หรือรุ่นที่ใหม่กว่า ส่วน OpenCode บน macOS และ Linux ไม่ได้รับผลกระทบ
ทำไมสแกนเนอร์ช่องโหว่จึงไม่เตือนเรื่อง OpenCode MCP OAuth?
เพราะ Anomaly ผู้พัฒนา OpenCode ไม่ได้ขอหมายเลข CVE และไม่ได้ออก security advisory สำหรับช่องโหว่ OpenCode MCP OAuth เครื่องมือสแกนและระบบแจ้งเตือน dependency ที่จับคู่จาก CVE จึงมองไม่เห็น องค์กรต้องตรวจรุ่น OpenCode ในเครื่องนักพัฒนาเอง
ถ้ายังอัปเดต OpenCode ไม่ได้ ลดความเสี่ยงอย่างไร?
Pillar Security แนะนำให้ผู้ใช้ OpenCode บน Windows และ WSL ที่ยังอัปเดตเพื่อปิดช่องโหว่ OpenCode MCP OAuth ไม่ได้ ถอด remote MCP server ที่ยังไม่ได้ตรวจสอบหรือไม่น่าเชื่อถือออกจากคอนฟิกก่อน และตรวจรายการ MCP server ที่ตั้งค่าไว้ด้วยคำสั่ง opencode mcp list
ช่องโหว่นี้เกี่ยวกับเหตุ OpenCode Console ถูกเจาะหรือไม่?
ไม่เกี่ยวกัน เหตุ OpenCode Console ถูกเจาะเมื่อ 16 ตุลาคม 2026 เป็นเหตุที่ระบบบริการออนไลน์ของบริษัท ส่วนช่องโหว่ OpenCode MCP OAuth อยู่ในตัวโปรแกรมที่ติดตั้งบนเครื่องนักพัฒนา และเกิดเมื่อเชื่อมกับ MCP server ที่ผู้โจมตีคุมได้
แหล่งอ้างอิง
- Open and Shut: Remote Code Execution in opencode via MCP OAuth — Pillar Security
- refactor(core): share a browser opener across opencode and tui #51414 — Anomaly (GitHub)
- Release v1.18.33 — Anomaly (GitHub)
- opencode/SECURITY.md — Anomaly (GitHub)
- OpenCode Flaw Lets Malicious MCP Servers Execute Code During Sign-In on Windows and WSL — The Hacker News
บุคคล องค์กร และสถานที่ในข่าวนี้
เลือกชื่อเพื่ออ่านข่าวทั้งหมดที่กล่าวถึง ตัวเลขคือจำนวนข่าว
- องค์กรและบริษัท
- GitHub61
พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ