Langflow – แพลตฟอร์มโอเพนซอร์สที่ช่วยให้นักพัฒนาสามารถเชื่อมโยง LLM prompts, แหล่งข้อมูล และโค้ด Python ที่กำหนดเองเข้าด้วยกัน – มีช่องโหว่ร้ายแรงที่ช่วยให้ใครก็ตามสามารถรัน Python ตามต้องการบนเซิร์ฟเวอร์ที่เปราะบางได้ โดย CVE-2026-33017 ซึ่งได้รับคะแนน 9.8 บนมาตรวัด CVSS ส่งผลกระทบต่อทุกเวอร์ชันก่อนหน้า 1.9.0 และสามารถถูกกระตุ้นได้โดยไม่ต้องมีการยืนยันตัวตน ทำให้ผู้ดูแลระบบจำเป็นต้องอัปเกรดหรือปิดฟีเจอร์ “public flow”
ช่องโหว่นี้ทำอะไรได้บ้าง
endpoint ของ public-flow ใน Langflow ถูกออกแบบมาสำหรับแชทบอทรูปแบบเดโมที่ใครก็สามารถทดลองใช้ได้โดยไม่ต้องล็อกอิน โดย endpoint นี้จะรับพารามิเตอร์ data ใน request body และสมมติว่า payload นั้นมีคำจำกัดความของ flow ที่ปลอดภัย จากนั้นจึงส่งเนื้อหาไปยังฟังก์ชัน exec() ที่มีมาให้ใน Python โดยตรง ซึ่ง exec() จะประเมินค่าสตริงนั้นเป็นโค้ดและรันด้วยสิทธิ์ระดับเดียวกับกระบวนการ (process) ของ Langflow
ผู้โจมตีเพียงแค่ต้องมี ID ของ public flow ซึ่งมักจะแสดงอยู่ใน URL ที่แชร์ เพื่อสร้าง request ที่สลับเอาคำจำกัดความของ flow ที่เป็นอันตรายใส่เข้าไป เมื่อเซิร์ฟเวอร์ประมวลผล request นั้น โค้ด Python ที่ถูกฉีดเข้าไปจะทำงานทันที ทำให้ผู้โจมตีสามารถควบคุมระบบโฮสต์ได้อย่างสมบูรณ์
ช่องโหว่นี้หลุดรอดมาได้อย่างไร
ในเวอร์ชันก่อนหน้านี้ เส้นทางการทำงานของโค้ด (code path) ที่โหลด flow จากฐานข้อมูลจะถูกข้ามไปเมื่อมีฟิลด์ data ปรากฏอยู่ แทนที่จะทำการทำความสะอาด (sanitising) หรือตรวจสอบความถูกต้องของ payload เซิร์ฟเวอร์กลับเชื่อใจผู้เรียกใช้งานและรันคำสั่งนั้นตามที่ส่งมาโดยตรง เนื่องจาก endpoint นี้สามารถเข้าถึงได้โดยไม่ต้องล็อกอิน พื้นที่การโจมตี (attack surface) จึงครอบคลุมไปถึงอินเทอร์เน็ตสาธารณะสำหรับทุกอินสแตนซ์ของ Langflow ที่เปิดใช้งาน public flows
ใครบ้างที่มีความเสี่ยง
เมื่อพิจารณาจากคะแนนความรุนแรง ช่องโหว่นี้จึงถูกจัดอยู่ในระดับ “critical” (ร้ายแรง)
ขั้นตอนการบรรเทาความเสี่ยงในทันที
- อัปเกรดเป็น Langflow 1.9.0 – นี่คือวิธีแก้ไขที่ได้รับการยืนยันเพียงวิธีเดียว
- ปิดใช้งานฟีเจอร์ public flow หากคุณไม่จำเป็นต้องให้มีการเข้าถึงแบบไม่ระบุตัวตน
- ปิด AUTO_LOGIN – เพื่อหยุดการสร้างเซสชันอัตโนมัติสำหรับ request ที่ไม่มีการยืนยันตัวตน
- วาง API ไว้หลัง firewall หรือ reverse proxy เพื่อจำกัดการเข้าถึงเฉพาะช่วง IP ที่เชื่อถือได้
- ติดตั้ง Web Application Firewall (WAF) ที่สามารถบล็อก request ไปยัง endpoint
build_public_tmpที่มีพารามิเตอร์data
ทำไมการแก้ไขนี้จึงสำคัญ
ช่องโหว่นี้อาศัยความผิดพลาดพื้นฐานในการออกแบบ นั่นคือการเชื่อใจโค้ดที่ผู้ใช้ส่งมาในบริบทที่ทำงานด้วยสิทธิ์ระดับสูง การนำความเชื่อใจนั้นออกไปและบังคับใช้การจัดการอินพุตที่เข้มงวดขึ้น ทำให้ Langflow 1.9.0 สามารถกู้คืนกำแพงกั้นระหว่างผู้ใช้เดโมสาธารณะและเซิร์ฟเวอร์หลักได้อีกครั้ง
สิ่งที่ควรติดตามต่อไป
- การตอบสนองของชุมชน – คอยตรวจสอบ repository ของ Langflow สำหรับ patch หรือประกาศแจ้งเตือนเพิ่มเติม
สรุป: การติดตั้ง Langflow ใดก็ตามที่เปิดใช้งาน endpoint ของ public-flow จะต้องได้รับการติดตั้ง patch ในวันนี้ จนกว่าจะมีการใช้งานเวอร์ชัน 1.9.0 ให้ปิดฟีเจอร์ดังกล่าวและป้องกันบริการด้วยการควบคุมเครือข่าย เพราะความเสียหายจากการถูกเจาะระบบนั้นมีมูลค่าสูงกว่าความพยายามในการอัปเกรดอย่างรวดเร็วมาก
