ช่องโหว่ CVE-2025-68668 n8n
นักวิจัยด้านความปลอดภัยทางไซเบอร์ได้เปิดเผยช่องโหว่ร้ายแรงใหม่ใน n8n ซึ่งเป็นแพลตฟอร์มโอเพนซอร์สสำหรับการทำงานอัตโนมัติของเวิร์กโฟลว์ที่ได้รับความนิยม ช่องโหว่นี้อาจทำให้ผู้โจมตีที่ได้รับอนุญาตสามารถเรียกใช้คำสั่งระบบปฏิบัติการใด ๆ บนเซิร์ฟเวอร์ได้ ซึ่งอาจนำไปสู่การเจาะระบบได้ทั้งหมด
ปัญหาดังกล่าวได้รับการติดตามในชื่อ CVE-2025-68668 และมีคะแนน CVSS 9.9 ซึ่งจัดอยู่ในระดับความรุนแรงวิกฤต และถูกจัดประเภทเป็นความล้มเหลวของกลไกการป้องกัน
สารบัญ
ใครบ้างที่มีความเสี่ยง และทำไมเรื่องนี้จึงสำคัญ
ช่องโหว่นี้ส่งผลกระทบต่อ n8n เวอร์ชัน 1.0.0 ถึง (แต่ไม่รวม) 2.0.0 ผู้ใช้ที่เข้าสู่ระบบและมีสิทธิ์ในการสร้างหรือแก้ไขเวิร์กโฟลว์สามารถใช้ช่องโหว่นี้เพื่อเรียกใช้คำสั่งระดับระบบด้วยสิทธิ์เดียวกันกับกระบวนการ n8n ได้
จุดอ่อนนี้เกิดจากการบายพาสแซนด์บ็อกซ์ใน Python Code Node ซึ่งอาศัย Pyodide โดยการใช้ช่องโหว่นี้ ผู้โจมตีสามารถหลุดออกจากสภาพแวดล้อมการทำงานที่ตั้งใจไว้และโต้ตอบกับระบบปฏิบัติการโฮสต์ได้โดยตรง
ปัญหาดังกล่าวได้รับการแก้ไขอย่างสมบูรณ์แล้วใน n8n เวอร์ชัน 2.0.0
รายละเอียดทางเทคนิค: การหลุดออกจากแซนด์บ็อกซ์ของ Python
ตามคำแนะนำอย่างเป็นทางการ ระบบควบคุมการจำกัดสิทธิ์การเข้าถึง (sandboxing) ของ Python Code Node นั้นไม่เพียงพอ ทำให้ผู้โจมตีสามารถหลีกเลี่ยงข้อจำกัดและเรียกใช้คำสั่งตามอำเภอใจได้ ซึ่งจะเพิ่มความเสี่ยงของระบบที่ได้รับผลกระทบอย่างมาก โดยเฉพาะในสภาพแวดล้อมที่มีผู้ใช้หลายคนสามารถออกแบบหรือแก้ไขเวิร์กโฟลว์ได้
การปรับปรุงด้านความปลอดภัยและการแก้ไขปัญหาระยะยาวของ n8n
เพื่อตอบสนองต่อข้อกังวลเรื่องแซนด์บ็อกซ์ที่กว้างขึ้น n8n ได้นำเสนอโมเดลการเรียกใช้ Python ดั้งเดิมโดยใช้ตัวจัดการงานในเวอร์ชัน 1.111.0 เป็นคุณสมบัติเสริมที่มีความปลอดภัยสูงกว่า สามารถเปิดใช้งานโมเดลนี้ได้โดยใช้ตัวแปรสภาพแวดล้อม N8N_RUNNERS_ENABLED และ N8N_NATIVE_PYTHON_RUNNER
ด้วยการเปิดตัวเวอร์ชัน 2.0.0 การใช้งานที่ปลอดภัยยิ่งขึ้นนี้จึงถูกเปิดใช้งานเป็นค่าเริ่มต้น ซึ่งช่วยปิดช่องโหว่ได้อย่างมีประสิทธิภาพ
แนวทางการแก้ไขปัญหาที่แนะนำสำหรับระบบที่ยังไม่ได้อัปเดตแพตช์
จนกว่าจะสามารถอัปเกรดเป็นเวอร์ชัน 2.0.0 ได้ n8n แนะนำให้ใช้มาตรการป้องกันชั่วคราวดังต่อไปนี้:
ปิดใช้งาน Code Node อย่างสมบูรณ์โดยการตั้งค่าดังนี้ :
NODES_EXCLUDE: ['n8n-nodes-base.code']
ปิดการใช้งานการสนับสนุน Python ใน Code Node โดยการตั้งค่าดังนี้ :
N8N_PYTHON_ENABLED=false
บังคับให้ใช้แซนด์บ็อกซ์ Python ที่ใช้ตัวจัดการงานผ่านทาง :
N8N_RUNNERS_ENABLED และ N8N_NATIVE_PYTHON_RUNNER
ขั้นตอนเหล่านี้ช่วยลดความเสี่ยงในการหลุดออกจากแซนด์บ็อกซ์และการเรียกใช้คำสั่งได้อย่างมีนัยสำคัญ
ส่วนหนึ่งของแนวโน้มที่น่าเป็นห่วง
การเปิดเผยข้อมูลนี้เกิดขึ้นหลังจากช่องโหว่ร้ายแรงอีกช่องโหว่หนึ่งของ n8n คือ CVE-2025-68613 (ซึ่งได้รับการจัดอันดับ CVSS ที่ 9.9 เช่นกัน) ซึ่งอาจนำไปสู่การเรียกใช้โค้ดโดยพลการภายใต้เงื่อนไขบางประการ ปัญหาเหล่านี้เน้นย้ำถึงความจำเป็นเร่งด่วนที่ผู้ดูแลระบบต้องให้ความสำคัญกับการอัปเกรดและจำกัดสิทธิ์การเข้าถึงเวิร์กโฟลว์