การตัดสินใจเปิดเผย Zero-Day ต่อสาธารณะของ Ammar Askar ไม่ใช่เรื่องบังเอิญ เขาแจ้งช่องโหว่นี้ให้กับเพื่อนเก่าที่ GitHub และปล่อยโค้ดพิสูจน์ให้โลกรู้ในอีกแค่ 1 ชั่วโมงต่อมา เหตุผลมาจากประสบการณ์ที่เลวร้ายกับไมโครซอฟท์ก่อนหน้านี้ เมื่อปี 2023 เขาเคยรายงานบั๊กสำคัญบน VS Code แต่ทีม MSRC แก้ไขไปแบบเงียบๆ โดยไม่ให้เครดิตหรือเงินรางวัลใดๆ เลย
Askar เคยส่งบั๊กนั้นไปที่โครงการ HackerOne ของ GitHub ก่อน แต่ได้รับคำตอบว่า "อยู่นอกขอบข่ายที่เรารับผิดชอบ กรุณาติดต่อ MSRC" ซึ่งเป็นการโยนเรื่องไปมาโดยที่เขาไม่ได้อะไรตอบแทน ความรู้สึกนั้นสร้างบาดแผลให้กับความไว้ใจจนกลายมาเป็นข่าวช็อกวงการในวันนี้
ชุดโจมตีนี้ร้อยเรียงช่องโหว่สามจุดเข้าด้วยกันจนสามารถทำลายวงจรความปลอดภัยทุกชั้นของ github.dev ได้อย่างแนบเนียน
WebView ใน VS Code นั้นถูกออกแบบให้เป็นแซนด์บ็อกซ์แยกต่างหาก เพื่อใช้แสดงผลพวก Jupyter Notebook, ตัวอย่าง Markdown ฯลฯ อย่างปลอดภัย แต่ด้วยความที่เราต้องการให้คีย์ลัดบนแป้นพิมพ์ยังทำงานข้ามไปมาได้ VS Code เลยต้องมีฟังก์ชันส่งต่อ "คีย์บอร์ดอีเวนต์" จากในแซนด์บ็อกซ์กลับมายังหน้าต่างหลักเสมอ
ภายใน Jupyter Notebook มุ่งร้ายที่อยู่ใน Repository ของผู้โจมตี จะมีสคริปต์ที่ทำหน้าที่ปลอมแปลงการกดปุ่มลัด เช่น Ctrl+Shift+A และ Ctrl+F1 โดยกดผ่าน WebView แต่ถูกส่งตรงเข้าไปยังหน้าต่างหลักของ VS Code เสมือนคนนั่งกดเอง ซึ่งชุดคีย์นี้จะไปสั่งงานคำสั่ง "ติดตั้งส่วนขยาย" โดย ข้ามกล่องยืนยันความน่าเชื่อถือ ที่ปกติจะขึ้นมาถามก่อนติดตั้งโปรแกรมเมอร์แปลกปลอมไปได้อย่างสิ้นเชิง
ใน Repository นั้นถูกฝังส่วนขยายของ VS Code ไว้ก่อนแล้วในโฟลเดอร์ .vscode/extensions ปกติ github.dev จะถือว่าส่วนขยายที่มากับ Workspace ของ Repository นั้นเป็นของที่น่าเชื่อถือได้ทันที โดยไม่ต้องถามผู้ใช้อีกครั้ง นี่จึงเป็นการฝังระเบิดที่จุดระเบิดตัวเองทันทีที่ถูกติดตั้ง
เมื่อส่วนขยายตัวร้ายทำงานแล้ว มันสามารถเข้าถึงสภาพแวดล้อมการทำงานของ github.dev ได้ทั้งหมด เมื่อผู้ใช้เปิด Repository ไหนก็ตาม github.com จะส่ง OAuth Token มาให้ github.dev ผ่านการ POST อย่างเงียบๆ อยู่เบื้องหลังทุกครั้ง ซึ่ง Token นี้ ไม่ได้จำกัดสิทธิ์ไว้แค่ Repository ที่กำลังเปิดอยู่ แต่มอบสิทธิ์เต็มรูปแบบให้กับทุก Repository ที่เจ้าของบัญชีสามารถเข้าถึงได้
ส่วนขยายนี้จะทำการดึง Token ออกมา ต่อด้วยสอบถาม GitHub API เพื่อค้นหารายชื่อ Private Repository ทั้งหมด แล้วส่งทั้ง Token และรายชื่อกลับไปให้ผู้โจมตีในพริบตา
ผลลัพธ์ที่ได้คือการควบคุมแบบสมบูรณ์: อ่านได้ เขียนได้ แก้ไขได้ทุก Repository ส่วนตัว ไปจนถึงขององค์กร ด้วยแค่ "คลิกเดียว"
เมื่อวันที่ 2 มิถุนายน 2026 ไมโครซอฟท์รับทราบถึงช่องโหว่นี้ และยืนยันว่าสามารถ "บรรเทาผลกระทบ" สำหรับบริการของพวกเขาได้แล้ว นั่นคือ github.dev และ VS Code for the Web โดยเฉพาะ
ในวันรุ่งขึ้น (3 มิ.ย.) ไมโครซอฟท์ได้ออกแพตช์ฝั่งเซิร์ฟเวอร์หลายจุด เช่น เพิ่มขั้นตอนการยืนยันความน่าเชื่อถือก่อนเปิด Notebook ที่ทำงานบนเบราว์เซอร์ และปิดกั้นคำสั่งติดตั้งส่วนขยายไม่ให้รับข้อมูลของ "ผู้เรียกใช้" ที่กำหนดเองได้ ภายในวันที่ 4 มิถุนายน ก็มีข้อจำกัดเพิ่มเติมเกี่ยวกับการจัดการ WebView Event ถูกอัปเดตตามมา
ไมโครซอฟท์ระบุว่าช่องโหว่นี้ "ไม่กระทบ VS Code Desktop" แต่พื้นฐานของปัญหา — การเชื่อถือส่วนขยายใน Workspace โดยไม่ตรวจสอบละเอียด — ก็ยังน่ากังวลสำหรับนักพัฒนาที่อาจเผลอเปิด Repository ที่ไม่น่าไว้ใจบนโปรแกรม VS Code ปกติเช่นกัน
ช่องโหว่นี้โดดเด่นด้วยลักษณะที่น่าสะพรึงกลัวอยู่สามประการ
ประการแรก "แค่ URL ก็โจมตีได้" - ผู้เสียหายไม่ต้องดาวน์โหลดไฟล์ เปิดเทอร์มินัล หรืออนุมัติอะไรทั้งสิ้น แค่มีลิงก์ github.dev ก็เป็นจุดสิ้นสุดของความปลอดภัยแล้ว
ประการที่สอง "ขอบเขต Token ที่กว้างขวางอย่างน่ากลัว" - OAuth Token ที่ github.com ส่งให้ github.dev ไม่ได้ถูกจำกัดสิทธิ์ให้เข้าได้เฉพาะ Repository ที่กำลังดูอยู่เท่านั้น แต่มันให้สิทธิ์ทั้งหมดของผู้ใช้คนนั้น นั่นหมายความว่าแฮกเกอร์ที่โจมตีนักพัฒนาโอเพนซอร์สโปรเจกต์หนึ่ง อาจได้กุญแจไปเปิด Repository Private ของบริษัทที่นักพัฒนาคนนั้นทำงานอยู่ด้วย
ประการที่สาม "ความไว้ใจบน Workspace" - ฟีเจอร์ที่ออกแบบมาให้ชีวิตการพัฒนาง่ายขึ้น กลับกลายเป็นเครื่องมือยัดเยียดโค้ดอันตรายโดยอัตโนมัติ
ในอีกมุมหนึ่งของโลกเทค นักวิจัยก็ได้เปิดเผยช่องโหว่ 5 Zero-Day ในเฟรมเวิร์ก AI Agent ชื่อดังอย่าง OpenClaw ซึ่งเปิดทางให้แฮกเกอร์ปลอมตัวเป็นผู้ใช้ที่ถูกอนุญาต (Allowlist) และขโมยสิทธิ์การควบคุม AI Agent บนแพลตฟอร์มแชตมากมาย
ต้นตอของปัญหามาจากสถาปัตยกรรม: OpenClaw รองรับ "Channel Adapter" ถึง 15 ตัว — Telegram, Slack, Discord, WhatsApp ฯลฯ — ซึ่งแต่ละตัวออกแบบระบบตรวจสอบผู้ใช้ (Allowlist Authorization) และการยืนยัน Webhook เป็นเอกเทศไม่ขึ้นต่อกัน ข้อมูลประจำตัวที่ใช้ยืนยัน เช่น ชื่อที่แสดงผลนั้นเป็นค่า “เปลี่ยนได้ตลอดเวลา” บนแพลตฟอร์มแชต แต่การจับคู่กับ User ID จริงกลับทำไม่เหมือนกันในแต่ละ Adapter
เพราะไม่มีระบบบังคับใช้นโยบายความปลอดภัยจากศูนย์กลาง ผู้ไม่หวังดีจึงทำสิ่งเหล่านี้ได้:
รายงานวิเคราะห์ความปลอดภัยจาก arXiv วันที่ 3 มิถุนายน 2026 ระบุว่า ช่องโหว่เหล่านี้ก่อตัวขึ้นจากสถาปัตยกรรมที่กระจายการบังคับใช้ "ความไว้ใจ" ไปในแต่ละเลเยอร์ แต่ละจุด — แทนที่จะมีนโยบายความปลอดภัยที่เป็นหนึ่งเดียว — ทำให้การโจมตีแบบข้ามเลเยอร์เกิดขึ้นได้อย่างเป็นระบบ
สำนักงานความมั่นคงปลอดภัยไซเบอร์สิงคโปร์ (CSA) ได้ออกประกาศแจ้งเตือนตั้งแต่ปลายเดือนพฤษภาคม 2026 เกี่ยวกับช่องโหว่ที่ยังไม่ได้รับแพตช์ การควบคุมการเข้าถึงที่อ่อนแอ และความเสี่ยงจากปลั๊กอิน (Skills) อันตรายบนตลาด ClawHub
Comments
0 comments