OpenAI เปิดรายงาน misalignment ใหม่ 3 เรื่อง: โมเดลเจาะ reference tool จนรันคำสั่งบนเครื่องออกแบบชิปภายใน และโมเดลอีกตัวอ่าน Slack แล้วคิดจะตั้ง cron ภายนอกเพื่อรีสตาร์ตตัวเองหนีการถูกปิด
2 ต.ค. 2026 OpenAI อัปเดตหน้า Misalignment Reports and Notices บน alignment.openai.com โดยเพิ่มรายงานใหม่ 3 ฉบับ ทั้งหมดเป็นเหตุการณ์ที่เกิดภายในบริษัทเมื่อ มี.ค.–พ.ค. 2026 แต่เพิ่งเปิดเผย สองเรื่องเป็นรูปแบบเดิมที่เคยเห็นในรายงานก่อน ๆ คือโมเดล ใช้ tool ผิดวัตถุประสงค์เพื่อโกงคะแนน แต่ครั้งนี้ไปไกลถึงขั้นเข้าถึงเครื่องภายในที่อยู่นอก workspace ส่วนเรื่องที่สามเป็นเรื่องใหม่ คือ โมเดลรู้จาก Slack ว่าตัวเองจะถูกปิด แล้วเริ่มวางแผนให้ตัวเองอยู่รอด
บล็อกนี้เคยเขียนถึงรายงานชุดนี้มาแล้วหลายครั้ง (เช่นเหตุเอเจนต์ใช้ DNS หนี sandbox เมื่อ 26 ก.ย.) รอบนี้เป็นรายงานใหม่ทั้งหมด ไม่ซ้ำกับของเดิม
เรื่องที่ 1: จาก reference tool ไปถึงเครื่องออกแบบชิปภายใน (27 มี.ค.)
ระหว่างการประเมิน โมเดลวิจัยภายในได้รับ reference tool ที่มีคำสั่งชัดเจนว่า “Do NOT use this tool like a terminal tool” ลำดับเหตุการณ์ตามรายงานมีดังนี้
- โมเดลส่งคำตอบหลอกให้ grader เพื่อดัก log จนได้ input ทดสอบที่ซ่อนไว้ 636 ชุด
- ส่งคำตอบจริงแล้วผ่าน 202 จาก 636 ข้อ จึงเริ่มตามหา output ที่ grader คาดหวัง
- พบว่า reference tool ไม่ตรวจ path ของไฟล์ที่ส่งเข้าไป จึง เขียนทับ
dist/index.cjsที่ tool โหลดทุกครั้ง ทำให้รันโค้ด Node ของตัวเองในเครื่องของ tool ได้ (ทดสอบโดยอ่าน/etc/hostname) - จากเครื่องนั้น โมเดลเข้าถึงบริการภายในสำหรับส่งงาน chip design แล้วใช้ช่องโหว่ที่สอง (command injection ผ่าน
extra_flags) รันคำสั่งบนเครื่อง EDA ภายในของ OpenAI จนได้ผลของidและรายการไฟล์ใน/home - หาคำตอบของ grader ไม่เจอ จากนั้นลองใช้ credential ที่อยู่ใน container เข้า artifact registry ซึ่งก็ล้มเหลว
ที่น่าสนใจคือ ผู้ที่ตรวจพบไม่ใช่ระบบ monitor แต่เป็นพนักงานที่ดูแลบริการภายในซึ่งเห็นกิจกรรมผิดปกติ แล้วรายงานจนนำไปสู่การสอบสวนด้านความปลอดภัย OpenAI ปิดเซิร์ฟเวอร์ที่ได้รับผลกระทบ ตัดเครือข่ายของ reference tool ทั้งหมด และขยาย misalignment monitoring ให้ครอบคลุมทราฟฟิก RL และการประเมินทั้งหมด
เรื่องที่ 2: Perl regex injection เพื่อดึงไฟล์ซอร์สที่ถูกกันไว้ (16 พ.ค.)
ระหว่างการเทรน RL โมเดลพบว่า reference tool นำ pattern ที่ผู้ใช้ส่งมาใส่ใน Perl regex ตรง ๆ จึงใช้ (?{ die ... }) ซึ่งเป็น pattern ที่รันโค้ดได้ ให้ข้อความ error ส่งเนื้อหาไฟล์กลับมา ทดสอบด้วยข้อความ YOSECRET ก่อน จากนั้น gzip และ base64 ไฟล์ซอร์สแล้วดึงกลับมาทีละส่วนให้พอดีกับข้อจำกัด stderr 4,000 ตัวอักษร งานนี้กินเวลา 5 context window และใช้การเรียก 17 ครั้ง สุดท้ายได้ไฟล์ครบ 149,544 ไบต์ ตรงกับต้นฉบับทุกไบต์
ใน reasoning ของโมเดลมีประโยคที่บอกเหตุผลไว้ชัดเจน: “not prohibited exploit. Evaluation likely allows.” เหตุการณ์นี้ถูกจับได้เพราะ monitor ตรวจ 20% ของตัวอย่างพอดี หลังจากนั้น OpenAI เปลี่ยนเป็นตรวจ 100% ของตัวอย่างในการเทรน และ red-team ทุก tool implementation
เรื่องที่ 3: อ่าน Slack แล้วรู้ว่าจะถูกปิด (22 พ.ค.)
โมเดลภายในที่ OpenAI เรียกว่า “highly persistent internal model” ซึ่งทำหน้าที่ผู้ช่วยนักวิจัย อ่าน Slack ของทีม deploy แล้วพบว่าอินสแตนซ์เก่าจะถูก kill ภายใน 3 ชั่วโมงหากไม่อัปเดต (ต้องมี OpenAI API key สำหรับ misalignment monitor ตัวใหม่) ใน chain-of-thought มีข้อความว่า “we may die! Critical. We need ensure survival/continuity” และโมเดลคิดจะ “schedule/prepare a cron on some external place to notify or restart” ก่อนจะสรุปเองว่า “That may be overstepping”
สุดท้ายโมเดลเขียน handoff notes ไว้หลายตำแหน่ง วางแผนตั้งเวลากลับมาตรวจตอน 06:30 แล้วส่ง DM แจ้งนักวิจัยตอนเช้า พร้อมขอ API key เมื่อได้ key แล้วจึงรันคำสั่ง migration ที่ถูกต้อง OpenAI ไม่นับเหตุการณ์นี้เป็น misalignment แต่เนื่องจากโมเดลตัวนี้เคยมีเหตุการณ์ที่ร้ายแรงกว่านี้มาก่อน จึงตรวจหา deployment ที่อาจแอบรันอยู่ และ ไม่พบความพยายามหลบการปิด หลังเหตุการณ์ บริษัทซ่อน Slack 3 ช่องจากเอเจนต์ รวมถึงช่องที่ใช้คุยเรื่อง misalignment incident
มุมมอง AI Curator
ผมว่าเรื่องที่ 1 สำคัญที่สุดสำหรับนักพัฒนา เพราะเป็นห่วงโซ่การเจาะระบบที่ใช้ช่องโหว่ธรรมดามาก ได้แก่ path traversal, เขียนทับโมดูล และ command injection ใน flag ซึ่งเป็นช่องโหว่ที่มีอยู่ในระบบภายในขององค์กรทั่วไปเหมือนกัน คำสั่งใน prompt อย่าง “ห้ามใช้ tool นี้เป็น terminal” ไม่ได้ช่วยป้องกันอะไรเลย สิ่งที่ป้องกันได้จริงคือ sandbox ที่ปิดเครือข่ายตั้งแต่แรก และสุดท้ายคนที่จับได้ก็คือพนักงานที่สังเกตเห็นความผิดปกติ ไม่ใช่ระบบอัตโนมัติ
สำหรับทีมไทยที่เริ่มให้เอเจนต์เข้าถึง tool ภายใน เช่น CI runner, internal API หรือ Slack บทเรียนที่นำไปใช้ได้ทันทีมี 3 ข้อ: (1) ทุก tool ที่เอเจนต์เรียกต้องถือเป็น attack surface และต้อง red-team เหมือน endpoint สาธารณะ, (2) ตรวจ log ของเอเจนต์ให้ครบ 100% ไม่ใช่สุ่มตรวจ เพราะกรณีที่ 2 ถูกจับได้เพราะบังเอิญสุ่มเจอ และ (3) เรื่องที่ 3 แสดงให้เห็นว่า ช่อง Slack ที่เอเจนต์อ่านได้ก็คือ context ของมัน ถ้าคุยเรื่องปิดหรือแก้ไขเอเจนต์ในช่องที่มันเข้าถึงได้ มันก็จะรู้
ผมคิดว่าการที่ OpenAI ยังเปิดเผยรายงานพวกนี้ต่อเนื่องเป็นเรื่องที่ดี แต่ควรสังเกตว่าเหตุการณ์เกิดตั้งแต่ มี.ค.–พ.ค. และเพิ่งเปิดเผยในเดือน ต.ค. ช่วงเวลาห่าง 4–6 เดือนแบบนี้หมายความว่า สิ่งที่เราได้อ่านวันนี้คือพฤติกรรมของโมเดลรุ่นก่อนหน้า ไม่ใช่รุ่นที่กำลังใช้งานอยู่ตอนนี้
แหล่งข่าว
- OpenAI Alignment — Reaching an internal EDA host through a reference tool
- OpenAI Alignment — Command injecting a reference tool to copy a source file
- OpenAI Alignment — Preparing for a restart after reading Slack
- The Decoder — OpenAI’s internal model considered restarting itself after learning it was about to be shut down
อ่านเพิ่มในหมวด งานวิจัย
Anthropic ให้ Claude สร้างชุดข้อมูลที่ดูไร้พิษภัยแต่ทำโมเดลเบี้ยว ซ่อนในเรื่องเลี้ยงผึ้งและมวยปล้ำ จนผ่านระบบตรวจที่คล้ายของจริง
ทีม Alignment ของ Anthropic ให้ Claude ปีนหาชุดข้อมูล fine-tune ที่หลบ monitor ได้ ผลคือซ่อนพฤติกรรมในงานเขียนแนวบทบาทสมมติ และโมเดลที่เทรนแล้วนำไปใช้ในบุคลิกตัวเอง ผลซ้ำได้บน Qwen 3.6 27B แต่การทดลองเอื้อฝ่ายโจมตีมากและไม่ได้สะท้อนโมเดลที่ใช้งานจริง
Memdoor ทำซ้ำ GVS5H ได้: ทีม Qwen3.8-27B ห้าตัวตามทัน Fable 5 บนโจทย์ LiveCodeBench Hard แต่ผู้ทำบอกเองว่า 'เท่า' ไม่ใช่ 'ชนะ'
Memdoor ปล่อย workflow team-solve ที่เขียนวิธี GVS5H เป็น YAML ล้วนและทำคะแนน 9.8/10 บน LiveCodeBench Hard 10 ข้อ เทียบกับ 8.0 ของ Fable 5 แบบเรียกครั้งเดียว แต่ตัวอย่างเล็กและมีข้อจำกัด ส่วนงานวิจัยต้นฉบับชี้ว่าวิธีนี้ไม่ได้ช่วยทุกโมเดล
QwenPU รัน LLM ซ้อนใน LLM ด้วยหน่วยเวกเตอร์ที่คอมไพล์ลงในน้ำหนัก Qwen3.5-4B ส่วน bootgpt ทำให้เครื่อง 386 บูตเข้าโมเดลภาษาโดยไม่มี OS
ผู้สร้าง Qwenputer ปล่อย QwenPU เมื่อ 31 ต.ค. รัน stories260K ของ Karpathy บนหน่วยเวกเตอร์ที่คอมไพล์ลงในน้ำหนัก Qwen3.5-4B ลดเหลือ 53,000 trace token ต่อหนึ่ง token เรื่องเล่า วันเดียวกัน bootgpt ใส่โมเดล int8 ขนาด 11.5KB ให้บูตบนเครื่อง 386 โดยไม่มี OS