Rails ออกแพตช์แก้ไขช่องโหว่ระดับ Critical ใน Active Storage ที่อาจนำไปสู่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (RCE)

ช่องโหว่ระดับ Critical ใน Active Storage Framework อาจทำให้ผู้โจมตีที่ไม่ต้องยืนยันตัวตนสามารถอ่านไฟล์ใด ๆ ก็ได้จากแอปพลิเคชัน Rails และอาจยกระดับไปสู่การเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (RCE) ได้

Rails เป็นเว็บ Web Application Framework แบบ Open-source ที่เขียนด้วยภาษา Ruby ใช้สำหรับสร้างเว็บไซต์ และเว็บแอป โดยใช้ Component ที่มาพร้อมกับ Rails อย่าง Active Storage ในการจัดการการอัปโหลดไฟล์ และไฟล์ Attachments

ผู้ดูแลโปรเจกต์ Rails ได้เผยแพร่คำแนะนำเกี่ยวกับช่องโหว่ CVE-2026-66066 ซึ่งได้รับการประเมินความรุนแรงในระดับ Critical

Active Storage ยังสามารถสร้างภาพ Thumbnails จาก Media ที่อัปโหลด โดยใช้ Library ประมวลผลภาพ เช่น libvips หรือ ImageMagick

ตามรายงานด้านความปลอดภัย ช่องโหว่ CVE-2026-66066 สามารถถูกโจมตีได้เมื่อมีการใช้งาน libvips ซึ่งจะช่วยให้ผู้โจมตีสามารถอัปโหลดรูปภาพที่ถูกสร้างขึ้นมาเป็นพิเศษเข้าไปยังแอปพลิเคชันที่มีช่องโหว่ และทำให้อ่านไฟล์บนเซิร์ฟเวอร์ได้

เงื่อนไขอีกข้อหนึ่งที่จะทำให้เกิดการโจมตีได้คือ เซิร์ฟเวอร์จะต้องอนุญาตให้มีการอัปโหลดรูปภาพจากผู้ใช้ที่ไม่น่าเชื่อถือ

หากตรงตามเงื่อนไขเหล่านี้ ผู้โจมตีอาจเข้าถึงไฟล์ต่าง ๆ ของแอปพลิเคชัน รวมถึง Environment ของ process ซึ่งโดยปกติจะเก็บค่า ‘secret_key_base’ และข้อมูล Credentials สำหรับเข้าถึงฐานข้อมูล, พื้นที่เก็บข้อมูลบน Cloud และบริการอื่น ๆ

ช่องโหว่ CVE-2026-66066 ส่งผลกระทบต่อ Active Storage เวอร์ชันก่อนหน้า 7.2.3.2, เวอร์ชัน 8.0.x ก่อนหน้า 8.0.5.1 และเวอร์ชัน 8.1.x ก่อนหน้า 8.1.3.1

สำหรับ Rails เวอร์ชัน 6.x จะได้รับผลกระทบก็ต่อเมื่อมีการตั้งค่า Active Storage นอกเหนือไปจากค่า Defaults เท่านั้น

ทีมงาน Rails แนะนำให้อัปเกรดเป็น libvips 8.13 หรือใหม่กว่า และทำการ Rotate ‘secret_key_base’ (Master key ของ Rails), ข้อมูล Credentials สำหรับเข้าถึงฐานข้อมูล, ข้อมูล Credentials ของบริการ Active Storage และข้อมูล Secrets อื่น ๆ ทั้งหมดที่ process ของแอปพลิเคชันสามารถเข้าถึงได้

สำหรับระบบที่รัน libvips 8.13 หรือใหม่กว่า ผู้ดูแลระบบสามารถปิดการทำงานของฟังก์ชันที่มีช่องโหว่ชั่วคราวได้ โดยการตั้งค่า Environment variable VIPS_BLOCK_UNTRUSTED หรือเรียกใช้ Vips.block_untrusted(true) เมื่อใช้ ruby-vips 2.2.1 หรือใหม่กว่า

สำหรับแอปพลิเคชันที่ใช้ libvips เวอร์ชันก่อนหน้า 8.13 จะไม่มีวิธีแก้ปัญหาเบื้องต้นให้ใช้งาน

ผู้ที่ใช้งาน ImageMagick จะไม่ได้รับผลกระทบจากช่องทางการโจมตีนี้ อย่างไรก็ตาม libvips ถือเป็น Default Processor ใน Docker images อย่างเป็นทางการของ Rails รวมถึงในการติดตั้งบน Debian และ Ubuntu ด้วย

ทีมงาน Rails ระบุว่า พวกเขาจงใจระงับรายละเอียดทางเทคนิคของช่องโหว่นี้ไว้ เพื่อลดความเสี่ยงในการถูกโจมตี และให้ผู้ใช้มีเวลาติดตั้งการอัปเดต

เดิมทีรายละเอียดทางเทคนิคฉบับเต็มมีกำหนดจะเปิดเผยในวันที่ 28 สิงหาคมบน Forums ของ Rails

อย่างไรก็ตาม เนื่องจากมีโค้ดสาธิตการโจมตี (Proof-of-Concept หรือ PoC) เผยแพร่สู่สาธารณะอย่างรวดเร็ว ผู้ดูแลโปรเจกต์จึงตัดสินใจเผยแพร่รายละเอียดทั้งหมด รวมถึงเครื่องมือสำหรับการตรวจสอบ forensic ออกมาด้วย

ช่องโหว่นี้ถูกค้นพบ และรายงานไปยังทีมงาน Rails โดยนักวิจัยจาก Ethiack และ GMO Flatt Security Inc.

บริษัทด้านความปลอดภัย Akamai ยังได้เผยแพร่คำเตือนเกี่ยวกับ CVE-2026-66066 โดยตั้งชื่อรูปแบบ Attack Chain นี้ว่า “KindaRails2Shell” และเตือนถึงความเป็นไปได้ที่จะเกิดการเรียกใช้โค้ดที่เป็นอันตรายจากระยะไกล (RCE)

Akamai อธิบายว่า "เมื่อ secret_key_base ถูกเจาะ ผู้โจมตีก็จะได้ Master Cryptographic Key ของแอปพลิเคชัน"

"พวกเขาสามารถปลอมแปลง Session Cookies, Sign global IDs และปรับเปลี่ยนข้อมูลที่มีการทำ Serialize ไว้ ซึ่งสิ่งเหล่านี้จะนำไปสู่การทำ RCE บนเซิร์ฟเวอร์ระบบได้อย่างสมบูรณ์"

Akamai ระบุว่า บริษัทได้ประสานงานกับ Ethiack ก่อนที่จะมีการเปิดเผยต่อสาธารณะเพื่อเตรียมการป้องกันให้กับลูกค้า และขณะนี้ได้ปล่อยตัวอัปเดตการป้องกันบน WAF แล้ว

ทาง Ethiack ตั้งข้อสังเกตว่า WAF อาจจะพอช่วยซื้อเวลาให้กับผู้ดูแลระบบได้บ้าง แต่ผู้โจมตีที่ใช้เครื่องมือ AI น่าจะสามารถสร้างรูปแบบ Attack Chain นี้ขึ้นมาใหม่ได้ โดยอาศัยการวิเคราะห์จาก Patch diffs

ที่มา : Bleepingcomputer