สรุปสั้น
แพลตฟอร์มออโตเมชันยอดนิยม n8n ได้ออกแพตช์แก้ช่องโหว่หลบหนีแซนด์บ็อกซ์ของนิพจน์ (expression-sandbox escape) ระดับความรุนแรงสูง ที่เปิดทางให้ผู้ใช้ซึ่งล็อกอินแล้วและมีสิทธิ์แก้ไขเวิร์กโฟลว์ สามารถรันคำสั่งระบบปฏิบัติการบนเซิร์ฟเวอร์ที่รัน n8n ได้ ช่องโหว่นี้ถูกค้นพบโดยบริษัท Security Joes ระหว่างที่กำลังตรวจสอบแพตช์เดิมของ CVE-2026-27577 ที่ n8n ออกเมื่อเดือนกุมภาพันธ์ เพื่อหาช่องทางหลบเลี่ยงเพิ่มเติม โดยช่องโหว่ใหม่ถูกติดตามในรหัส GHSA-gv7g-jm28-cr3m จัดระดับความรุนแรงสูง (High) ด้วยคะแนน CVSS 4.0 เท่ากับ 8.7 และ ณ วันที่ 27 กรกฎาคม 2569 ยังไม่มีการกำหนดหมายเลข CVE ให้
เวอร์ชันที่ได้รับผลกระทบคือเวอร์ชันก่อน 2.31.5 และช่วง 2.32.0 ถึงก่อน 2.32.1 โดย n8n แก้ไขในเวอร์ชัน 2.31.5 และ 2.32.1 การโจมตีต้องอาศัยบัญชีที่ใช้งานได้จริงและมีสิทธิ์สร้างหรือแก้ไขเวิร์กโฟลว์ แต่ไม่ต้องอาศัยการกระทำจากผู้ใช้คนอื่น เมื่อเจาะสำเร็จ ผู้โจมตีจะรันคำสั่งด้วยสิทธิ์ของโปรเซส n8n ได้ทันที และตามรายงานของ Security Joes การเข้าถึงระดับนี้อาจเปิดเผยค่ากุญแจเข้ารหัส N8N_ENCRYPTION_KEY ซึ่งนำไปถอดรหัสข้อมูลรับรอง (credentials) ที่เก็บไว้ในระบบ ตลอดจนเปิดเส้นทางไปยังฐานข้อมูล บริการภายใน และปลายทางบนคลาวด์ที่เชื่อมต่ออยู่ได้ ทั้งนี้ยังไม่พบการโจมตีจริงในวงกว้าง ณ ช่วงที่จัดทำรายงาน
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 27 กรกฎาคม พ.ศ. 2569 ว่า บริษัท Security Joes ได้เปิดเผยรายงานการวิเคราะห์ช่องโหว่ผ่านสื่อ โดยระบุว่าช่องโหว่นี้เป็นผลต่อเนื่องจากชุดช่องโหว่หลบหนีแซนด์บ็อกซ์ของนิพจน์ที่ n8n ต้องแพตช์มาเรื่อย ๆ ตั้งแต่ปี 2025 และตามมาหลังจาก CVE-2026-27577 ซึ่งเป็นช่องโหว่ระดับ 9.4 ที่ถูกแก้ไปเมื่อเดือนกุมภาพันธ์ หลังนักวิจัยพบว่าอ็อบเจกต์ process หลุดรอดผ่านชั้นเขียนตัวระบุ (identifier-rewriting) ไปได้โดยไม่ถูกแปลง
นักวิจัยระบุว่าตัวสร้างเวิร์กโฟลว์ของ n8n ใช้นิพจน์รูปแบบ ={{ $json.email }} โดยมีตัวเขียนโครงสร้างไวยากรณ์แบบต้นไม้ (abstract syntax tree rewriter) คอยเปลี่ยนเส้นทางตัวระบุ JavaScript อิสระในนิพจน์เหล่านั้นให้ไปยังบริบทข้อมูลที่ n8n ควบคุม แทนที่จะเป็นรันไทม์ของ Node.js แต่ในเวอร์ชัน 2.31.4 ไฟล์ VariablePolyfill.ts กลับวาง ArrowFunctionExpression ไว้ในกิ่งที่ไม่ทำอะไรเลย (no-op) ทำให้นิพจน์ลูกศรแบบสั้นอย่าง () => process สามารถแปลงค่า process กลับไปเป็นตัวแปรโกลบอลจริงของ Node.js ได้ แทนที่จะเป็นค่าที่ถูกจำกัดในแซนด์บ็อกซ์

รายละเอียดช่องโหว่
จุดบอดจุดที่สองตามที่ Security Joes อธิบายอยู่ที่การตรวจสอบพร็อพเพอร์ตีของ n8n ซึ่งจะตรวจเฉพาะชื่อพร็อพเพอร์ตีแบบคงที่ (static) ในนิพจน์สมาชิก (member expression) แต่ฟังก์ชัน Reflect.get() รับชื่อพร็อพเพอร์ตีที่ต้องการมาในรูปอาร์กิวเมนต์ของฟังก์ชัน นักวิจัยจึงใช้ความต่างนี้เรียกคืน process.getBuiltinModule เพื่อโหลดโมดูล child_process และรันคำสั่งบนเครื่องโฮสต์ได้ในที่สุด โดยเงื่อนไขทั้งสองต้องเกิดร่วมกัน — ทีมวิจัยระบุว่า “ลำพังอย่างใดอย่างหนึ่งไม่เพียงพอ และไม่มีอย่างใดถูกครอบคลุมด้วยการทดสอบ (test)” ทั้งนี้ Security Joes เคยประเมินไว้ตอนแรกว่าช่องโหว่น่าจะได้คะแนนใกล้ระดับ 9.4 เท่ากับ CVE-2026-27577 แต่คะแนนที่ผู้พัฒนาเผยแพร่จริงคือ 8.7
ทีมงานได้ทดสอบโค้ดพิสูจน์แนวคิด (proof-of-concept) กับ n8n เวอร์ชัน 2.30.4 ทั้งผ่านแพ็กเกจเวิร์กโฟลว์ที่เผยแพร่และอินสแตนซ์ที่ติดตั้งในเครื่อง แพตช์ที่แก้ไขได้เพิ่มตัวจัดการ ArrowFunctionExpression โดยเฉพาะ เพื่อบังคับให้ตัวระบุเปล่า ๆ ในตัวลูกศรแบบสั้นถูกส่งผ่านบริบทข้อมูลที่ควบคุมไว้ ทั้งนี้ไทม์ไลน์ของการค้นพบคือ นักวิจัยพบช่องโหว่ที่หลงเหลือเมื่อวันที่ 14 กรกฎาคม รายงานผ่านโครงการเปิดเผยช่องโหว่ของ n8n ในวันที่ 15 กรกฎาคม และ n8n เผยแพร่เวอร์ชันที่แก้ไขในวันที่ 22 กรกฎาคม
ผลกระทบต่อไทย
n8n เป็นแพลตฟอร์มออโตเมชันและการเชื่อมต่อระบบ (workflow automation) แบบโอเพนซอร์สที่ได้รับความนิยมสูงในหมู่นักพัฒนาและทีมไอทีทั่วโลก รวมถึงในไทย มักถูกนำมาใช้ต่อประสาน API ระบบภายใน ฐานข้อมูล และบริการคลาวด์เข้าด้วยกัน ทำให้ตัวมันมักถือครองข้อมูลรับรองที่มีสิทธิ์สูงจำนวนมาก หากองค์กรใดรันอินสแตนซ์ n8n ที่ยังไม่ได้อัปเดต และมีผู้ใช้ภายในหรือบัญชีที่ถูกเจาะซึ่งมีสิทธิ์แก้ไขเวิร์กโฟลว์ ผู้โจมตีก็สามารถใช้ช่องโหว่นี้รันคำสั่งในระดับโปรเซส n8n แล้วต่อยอดไปยังฐานข้อมูลและบริการภายในที่เครื่องโฮสต์เข้าถึงได้ ความเสี่ยงจึงไม่ได้จำกัดแค่ตัว n8n แต่ลามไปถึงระบบหลังบ้านที่เชื่อมต่ออยู่ทั้งหมด องค์กรที่เปิดหน้าจอ n8n ให้ผู้ใช้จำนวนมากเข้าถึงยิ่งต้องระวังเป็นพิเศษ
คำแนะนำ
ผู้ดูแลระบบควรอัปเดต n8n เป็นเวอร์ชัน 2.31.5 หรือ 2.32.1 โดยเร็ว แทนที่จะพึ่งพาเพียงคำแนะนำชั่วคราวของ n8n ที่ให้จำกัดการเข้าถึงอินสแตนซ์และการแก้ไขเวิร์กโฟลว์ไว้เฉพาะผู้ใช้ที่ไว้วางใจเต็มที่ เพราะคำแนะนำนั้นถูกอธิบายว่าเป็นเพียงมาตรการบรรเทาระยะสั้นที่ยังไม่สมบูรณ์ นอกจากนี้ควรตรวจสอบเวิร์กโฟลว์ที่เพิ่งถูกสร้างหรือแก้ไขล่าสุด เพื่อหาฟังก์ชันลูกศร (arrow function) ที่ผิดปกติหรือโค้ด JavaScript ที่ถูกทำให้อ่านยาก ควรไล่ล่าหาการเรียกใช้ shell, PowerShell, curl หรือ wget ที่ถูกสร้างเป็นโปรเซสลูกของโปรเซส n8n หรือ Node.js และหากพบการรันเวิร์กโฟลว์หรือกิจกรรมการรันคำสั่งบนโฮสต์ที่น่าสงสัย ควรรีเซ็ตหรือหมุนเวียนข้อมูลรับรองที่เกี่ยวข้องทันที
