ลิงก์แชร์ ChatGPT ลิงก์เดียวยึดบัญชีได้ ต้นตอคือ MathLive ไลบรารีที่มียอดดาวน์โหลดกว่า 4 แสนต่อสัปดาห์ เพิ่งออกแพตช์ 31 ต.ค.
Parameter Labs เปิดเผยเมื่อ 28 ต.ค. 2026 ว่าลิงก์แชร์สาธารณะของ ChatGPT เคยถูกทำให้รัน JavaScript ของผู้โจมตีในเซสชันที่ล็อกอินอยู่ของคนที่กดเปิดได้ ทีมวิจัยพิสูจน์ว่าโค้ดนั้นไล่รายการแชต อ่านเนื้อหาแชตส่วนตัวที่ไม่เคยแชร์ให้ใคร และส่งข้อมูลออกไปยังเซิร์ฟเวอร์ภายนอกได้ OpenAI แก้เสร็จเมื่อ 26 ต.ค. จัดเป็น P1 และจ่ายรางวัลรวม $5,000 ผู้ใช้ ChatGPT จึงไม่ต้องทำอะไรเพิ่ม
เรื่องนี้ควรอยู่ในสายตานักพัฒนาเพราะจุดเริ่มต้นไม่ได้อยู่ในโค้ดเฉพาะของ OpenAI แต่อยู่ใน MathLive ไลบรารีคีย์บอร์ดคณิตศาสตร์แบบโอเพนซอร์สบน npm ที่มียอดดาวน์โหลด 421,823 ครั้ง ในสัปดาห์ 23-29 ต.ค. และเวอร์ชันที่แก้พฤติกรรมนี้เพิ่งออกเมื่อ 31 ต.ค. ซึ่งเป็นสามวันหลังบทความเผยแพร่ ถ้าเว็บของคุณใช้ MathLive ในหน้าที่มี iframe ไม่น่าเชื่อถืออยู่ด้วย งานนี้ยังไม่จบ
ห่วงโซ่การโจมตี
แต่ละชิ้นดูปลอดภัยเมื่อแยกกัน ปัญหาเกิดเมื่อมาอยู่หน้าเดียวกัน
- ผู้โจมตีสร้างบทสนทนาที่มีกราฟจริงหนึ่งอัน กราฟนี้โหลด MathLive เข้าหน้าหลักของ chatgpt.com และติดตั้งตัวรับ
postMessageของคีย์บอร์ดเสมือน - ในบทสนทนาเดียวกันมี HTML Preview ซึ่งรันใน iframe แยกโดเมนตามที่ควรเป็น โค้ดในนั้นอ่านหน้าหลักไม่ได้ แต่ส่งข้อความไปหาหน้าหลักได้
- ตัวรับของ MathLive ใช้นโยบาย origin เป็น
noneจึงรับข้อความจากทุกที่ และยอมให้ข้อความupdate-settingเปลี่ยน layout ของคีย์บอร์ดเป็น HTML ดิบ ก่อนนำไปใส่innerHTMLในหน้าจริง - HTML นั้นคือ
<iframe srcdoc>ที่ไม่มี sandbox เบราว์เซอร์จึงให้มันมี origin เป็น chatgpt.com - CSP บล็อก inline script แต่ยอมให้โหลดสคริปต์จาก YouTube ทีมวิจัยใช้ endpoint oEmbed ที่นำพารามิเตอร์ callback ไปใส่ในคำตอบแบบ JSONP ก่อนตรวจความถูกต้อง จึงได้ JavaScript ที่รันในฐานะ chatgpt.com
ผู้โจมตีแค่ส่งลิงก์ /share/<id> ทางอีเมลหรือแชต เวอร์ชันที่เสถียรที่สุดเหยื่อต้องกดปุ่ม Preview หนึ่งครั้ง แต่เมื่อทำเครื่องหมายให้ Preview เปิดเอง การเปิดลิงก์ก็เป็นการกระทำเดียวที่ต้องมี ทีมทำซ้ำเส้นทางอัตโนมัตินี้ได้ 3 ครั้งในบัญชีแยก โดยโค้ดทำงานหลังเปิดราว 4.5 วินาที
ข้อความ “ยึดบัญชี” ในพาดหัวของรายงานเป็นการสรุปของผู้วิจัยจากขอบเขตสิทธิ์ของโค้ด สิ่งที่พิสูจน์จริงคือไล่แชต อ่านแชตส่วนตัว และส่งข้อมูลบางส่วนออก ส่วนรายงานไม่ได้กล่าวถึงการถูกใช้โจมตีจริง
ไทม์ไลน์
- 13-14 ต.ค. ยืนยันเส้นทางบนโค้ด production และได้ JavaScript รันจริง
- 16-17 ต.ค. ยืนยันการส่งผ่านลิงก์แชร์ข้ามบัญชี และเส้นทาง Preview อัตโนมัติ
- 18 ต.ค. ส่งรายงานให้ bug bounty ของ OpenAI
- 21 ต.ค. OpenAI ทำซ้ำได้ และปรับความรุนแรงจาก P2 เป็น P1
- 22-26 ต.ค. ทยอยแก้ frontend สองเวอร์ชัน และปิดเคส
- 31 ต.ค. MathLive ออก 0.111.2
สิ่งที่ MathLive เปลี่ยนใน 0.111.2
Changelog ของเวอร์ชันนี้ระบุหัวข้อ Security ว่า ข้อความของคีย์บอร์ดเสมือน proxy และ mathfield จะตรวจ origin แบบ same-origin เป็นค่าเริ่มต้น ข้ามโดเมนต้องประกาศ origin ที่เชื่อถือเอง ข้อความข้ามหน้าต่างเลือกได้แค่ layout ที่มีมาในตัว ส่ง layout หรือ keycap แบบกำหนดเองไม่ได้แม้จะปิดการตรวจ origin และข้อความที่เปลี่ยนสถานะจะผูกกับหน้าต่าง mathfield ที่เชื่อมต่ออยู่
ตอนเราตรวจ เวอร์ชันล่าสุดบน npm คือ 0.111.4 และหน้า security advisories ของ repo ยังไม่มีรายการใหม่หลัง 9 ต.ค. ดังนั้นเครื่องมือสแกน dependency อาจยังไม่เตือน เราไม่พบคำชี้แจงว่าการแก้นี้มาจากรายงานของ Parameter โดยตรง แม้เนื้อหาจะตรงกับจุดอ่อนที่รายงานระบุ
มุมมอง AI Curator
บทเรียนที่แพงที่สุดของเคสนี้คือ sandbox ทำงานถูกต้องตลอดทาง Preview ถูกกักไว้จริง สิ่งที่พังคือคอมโพเนนต์ในหน้าหลักที่ “ฟัง” ข้อความจากข้างนอก ทีมที่ทำฟีเจอร์แบบ artifact หรือรัน HTML ที่โมเดลสร้างจึงควรตรวจไม่ใช่แค่กรอบ iframe แต่ต้องไล่ทุก message listener ที่ไลบรารีบุคคลที่สามติดตั้งไว้ในหน้าเดียวกันด้วย เพราะโมเดลทำให้โค้ดที่ไม่น่าเชื่อถือกลายเป็นเนื้อหาปกติของแอป
สำหรับทีมไทยที่ทำระบบการศึกษา แบบฝึกหัดคณิตศาสตร์ หรือ LMS MathLive เป็น dependency ที่เจอได้จริง ให้รัน npm ls mathlive แล้วอัปเกรดเป็น 0.111.4 ขึ้นไป และทดสอบกรณีฝังข้ามโดเมน เพราะค่าเริ่มต้นใหม่จะทำให้ integration ที่พึ่ง cross-origin หยุดทำงานจนกว่าจะประกาศ origin เอง อีกข้อที่ทำได้เลยคือทบทวน CSP ถ้ามีโดเมนใหญ่อย่าง YouTube อยู่ใน script-src ควรถือว่าเป็นช่องทางรันสคริปต์ ไม่ใช่รายชื่อที่ปลอดภัย
เงินรางวัล $5,000 สำหรับ P1 ที่อ่านแชตส่วนตัวของใครก็ได้ด้วยลิงก์เดียวก็น่าคิด เมื่อแชตเก็บทั้งรหัส เอกสารภายใน และความลับลูกค้า ราคาตลาดของช่องโหว่แบบนี้ไม่น่าจะต่ำขนาดนั้น
แหล่งข่าว
อ่านเพิ่มในหมวด การแฮ็ก
Talos พบมัลแวร์ VOLTA ขโมยข้อมูลแล้วส่งให้ LLM จัดอันดับว่าเหยื่อคุ้มค่าแค่ไหน พร้อมสลับโมเดลอัตโนมัติเมื่อถูกปฏิเสธ
Cisco Talos เผยแพร่รายงาน VOLTA-AUTODOXER เมื่อ 31 ต.ค. มัลแวร์ขโมยข้อมูลบน Windows ที่ส่งหลักฐานของเหยื่อผ่าน OpenRouter ให้ LLM เขียนรายงานจัดลำดับมูลค่า ถ้าโมเดลแรกปฏิเสธจะไล่ไปโมเดลถัดไป และตัวสร้างแบบแทนค่าบ่งชี้ว่าอาจถูกขายเป็นสินค้า
ส่วนขยาย Claude Code ปลอมฝังแบ็กดอร์ SSH บน Cursor Marketplace — อยู่ 11 ชั่วโมง กระทบไม่เกิน 5,000 คน ถอนส่วนขยายอย่างเดียวไม่พอ
Cursor ยืนยันว่า Anthropic.claude-code เวอร์ชัน 2.1.312 และ 2.1.313 ที่ถูกดัดแปลงอยู่ใน marketplace ราว 11 ชั่วโมงเมื่อ 29 ต.ค. พยายามเปิดแบ็กดอร์ SSH บน macOS และ Windows พนักงาน Anthropic ยืนยันว่า 2.1.313 ไม่เคยถูกเผยแพร่จากบริษัท เรื่องที่ยังไม่เปิดเผยคือคนร้ายเข้าไปวางไฟล์ได้อย่างไร
Epoch AI: GLM-5.3 สร้างเว็บเจาะ Firefox จาก patch gap ได้เอง ทุกเวอร์ชันในช่วง 6 รุ่นล่าสุด ต้นทุนรุ่นละราว $1,000
รายงาน 29 ต.ค. ของ Epoch AI พบว่าโมเดล open-weight GLM-5.3 ใช้แพตช์ที่เผยแพร่แล้วแต่ยังไม่ถึงผู้ใช้ สร้างเว็บที่อ่านไฟล์จากเครื่องผู้เยี่ยมชม Firefox ได้ทั้ง 6 รุ่น โดยไม่มีการปฏิเสธจากผู้ให้บริการใด Mozilla ปิดช่องโหว่สำคัญแล้วใน Firefox 159 ส่วน Chrome ยังเจาะไม่สำเร็จ