สรุปสั้น
บริษัท Microsoft แก้ช่องโหว่ CVE-2026-81376 ใน Visual Studio Code (VS Code) ซึ่งได้คะแนน CVSS 9.6 ระดับวิกฤต ช่องโหว่นี้ทำให้ workspace ที่ผู้โจมตีเตรียมไว้หลบข้อจำกัดของ Workspace Trust ได้ ซึ่งเป็นกลไกที่ออกแบบมาจำกัดสิ่งที่ VS Code ทำได้เมื่อผู้ใช้เปิดโปรเจกต์ที่ยังไม่ได้ตรวจสอบ หากโจมตีสำเร็จ ข้อมูลบนเครื่องของนักพัฒนาอาจรั่ว หรือโค้ดอาจถูกรันด้วยสิทธิ์ของผู้ใช้ที่ล็อกอินอยู่ ช่องโหว่กระทบ VS Code เวอร์ชัน 1.0.0 จนถึงก่อน 1.136.2 และผู้ใช้ควรอัปเดตเป็น 1.136.2 หรือใหม่กว่า
ผู้ค้นพบคือนาย Sam Chen นักวิจัยความปลอดภัย ซึ่งรายงานให้ Microsoft Security Response Center (MSRC) ตั้งแต่ 23 พฤษภาคม 2569 และได้รับรางวัล 4,000 ดอลลาร์สหรัฐจากโครงการ Open Source Bounty ของ Microsoft ประกาศของ Microsoft ออกเมื่อ 8 กันยายน และนาย Chen เปิดเผยต่อสาธารณะเมื่อ 10 กันยายน แต่รายละเอียดทางเทคนิคฉบับเต็มยังไม่เผยแพร่ ยังไม่มี PoC สาธารณะ และไม่มีรายงานว่าถูกใช้โจมตีจริง ข้อควรสังเกตคือเงินรางวัลไม่ได้บอกระดับความรุนแรง MSRC จัดรายงานเป็นระดับ Important ตอนพิจารณารางวัล ขณะที่ NVD บันทึกคะแนนของ Microsoft ที่ 9.6
รายละเอียดข่าว
เว็บไซต์ GBHackers รายงานเมื่อวันที่ 19 ตุลาคม 2569 ว่าประกาศของ Microsoft อธิบาย CVE-2026-81376 ว่าเป็น “การเปรียบเทียบที่ไม่สมบูรณ์โดยขาดปัจจัยบางอย่าง” (incomplete comparison with missing factors) ส่วน NVD จัดเป็นช่องโหว่ข้ามฟีเจอร์ความปลอดภัย (security feature bypass) ที่ถูกกระตุ้นผ่านเครือข่ายได้ เวกเตอร์ CVSS 3.1 ระบุว่าต้องมีการกระทำจากผู้ใช้ และมีผลกระทบสูงทั้งด้านการรักษาความลับ ความถูกต้อง และความพร้อมใช้งาน Microsoft ระบุว่า workspace ที่เตรียมไว้เป็นพิเศษสามารถเชื่อมต่อกับบริการที่ผู้โจมตีควบคุมและหลบข้อจำกัดเหล่านั้นได้
ไทม์ไลน์การเปิดเผยตามบล็อกของนาย Chen เริ่มจากรายงานต่อ MSRC เมื่อ 23 พฤษภาคม 2569 MSRC ยืนยันปัญหาเมื่อ 3 มิถุนายน และเข้าสู่ขั้นพัฒนาแพตช์ วันที่ 9-10 มิถุนายน ทีม bounty ประเมินว่าเข้าเกณฑ์รับรางวัล 4,000 ดอลลาร์สหรัฐ โดยจัดเป็นระดับ Important คุณภาพรายงานสูง และเป็นปัญหาประเภท Improper Input Validation วันที่ 2 กันยายน ยืนยันการแก้ไข ประกาศออกในรอบ Patch Tuesday วันที่ 8 กันยายน และเปิดเผยต่อสาธารณะวันที่ 10 กันยายน
ข้อจำกัดของข้อมูลคือบล็อกของนาย Chen ระบุว่าบทความทางเทคนิคฉบับเต็มยังไม่เสร็จ จึงยังไม่มีขั้นตอนการโจมตีที่เปิดเผย ภาพประกอบในบล็อกมีคำว่า “Restricted Settings Filter” และ “Nested Object Form” ซึ่งบ่งชี้ว่าปัญหาเกี่ยวกับการกรองการตั้งค่าที่ถูกจำกัดในโหมด Restricted เมื่อค่าอยู่ในรูปออบเจกต์ซ้อน แต่ยังไม่มีคำอธิบายยืนยัน ประกาศของ Microsoft ก็ไม่ได้บอกว่า workspace ทุกแบบใช้ช่องโหว่นี้ได้
รายละเอียดช่องโหว่
Workspace Trust ถูกออกแบบมาเพื่อลดความเสี่ยงจากการเปิดไฟล์และโฟลเดอร์ที่ไม่คุ้นเคย เมื่อผู้ใช้เปิดโปรเจกต์ที่ยังไม่ไว้วางใจ VS Code จะเข้าสู่ Restricted Mode ซึ่งปิดหรือจำกัดฟีเจอร์ที่อาจรันเนื้อหาที่โปรเจกต์ควบคุม เช่น การตั้งค่าของ workspace, task, การดีบัก และส่วนขยายบางตัว ช่องโหว่ CVE-2026-81376 ทำให้เนื้อหาใน workspace ข้ามขอบเขตนี้ได้ ทั้งที่ผู้ใช้ยังไม่ได้กดไว้วางใจ
| รายการ | รายละเอียด |
|---|---|
| CVE | CVE-2026-81376 |
| คะแนน | CVSS 3.1 9.6 (Critical) ตาม NVD |
| ประเภท | Security feature bypass / incomplete comparison with missing factors |
| เวอร์ชันที่ได้รับผลกระทบ | VS Code 1.0.0 จนถึงก่อน 1.136.2 |
| เวอร์ชันที่แก้แล้ว | 1.136.2 ขึ้นไป |
| เงื่อนไข | ผู้ใช้ต้องเปิด workspace ที่ผู้โจมตีเตรียมไว้ |
| สถานะการโจมตี | ไม่มีรายงานการโจมตีจริง ไม่มี PoC สาธารณะ |
ผลกระทบ
เครื่องของนักพัฒนามักมีซอร์สโค้ด ข้อมูลรับรอง เครื่องมือคลาวด์ โทเคนเข้าถึง และกุญแจ signing อยู่บนเครื่องเดียวกัน ช่องโหว่ที่ให้เนื้อหาในโปรเจกต์ที่ไม่น่าไว้วางใจข้ามขอบเขตความปลอดภัยได้ จึงเสี่ยงมากกว่าแค่ตัวโปรแกรมแก้ไขโค้ด สถานการณ์ที่สมจริงคือผู้โจมตีส่งลิงก์ repository มาในรูปแบบแบบทดสอบเขียนโค้ดตอนสมัครงาน โปรเจกต์ตัวอย่าง หรือ pull request ซึ่งเป็นเทคนิคที่กลุ่มอย่างแคมเปญหางานปลอมของเกาหลีเหนือใช้ล่อนักพัฒนามาโดยตลอด
กรณีนี้ยังสะท้อนรูปแบบที่ใหญ่กว่าในด้านความปลอดภัยของเครื่องมือนักพัฒนา คือไฟล์โปรเจกต์และการตั้งค่าของ editor กลายเป็นส่วนหนึ่งของเส้นทางการโจมตีได้ เมื่อซอฟต์แวร์ให้ความไว้วางใจกับสิ่งเหล่านั้นมากเกินไป องค์กรจึงต้องมอง repository การตั้งค่า และส่วนขยาย เป็นสิ่งที่มีความอ่อนไหวด้านความปลอดภัย แม้ Workspace Trust จะยังเป็นกลไกที่ควรเปิดไว้ แต่ไม่ควรถือเป็นด่านป้องกันเพียงด่านเดียว
คำแนะนำ
- อัปเดต VS Code เป็นเวอร์ชัน 1.136.2 หรือใหม่กว่า แล้วรีสตาร์ตโปรแกรมและตรวจว่ากำลังรันเวอร์ชันใหม่จริง
- ตรวจเครื่องที่บริหารจัดการและเครื่องของนักพัฒนาที่อาจมี VS Code ติดตั้งหลายชุด (เช่น เวอร์ชัน portable หรือ Insiders) ให้ครบ
- เปิด Workspace Trust ไว้เสมอ และใช้ Restricted Mode เมื่อตรวจโปรเจกต์ที่ไม่รู้จัก
- ระวังโปรเจกต์ที่ได้มาจากลิงก์ที่ไม่ได้ร้องขอ แบบทดสอบเขียนโค้ด หรือ repository ที่ไม่คุ้นเคย ควรเปิดในเครื่องเสมือนหรือ container ที่แยกจากข้อมูลรับรองจริง
- จำกัดข้อมูลสำคัญบนเครื่องนักพัฒนา เช่น ใช้ credential อายุสั้นแทนกุญแจถาวร และแยกกุญแจ signing ไว้ใน HSM หรือบริการจัดการกุญแจ
- เฝ้าระวังพฤติกรรมผิดปกติบน endpoint ของนักพัฒนา เช่น VS Code สร้างโปรเซสลูกหรือเชื่อมต่อเครือข่ายภายนอกที่ไม่คาดคิด และติดตามประกาศของ Microsoft เมื่อมีรายละเอียดเพิ่ม
