Cloudflare แก้ไขช่องโหว่ที่ทำให้ Container หนึ่งสามารถอ่านข้อมูล Disk ที่เหลือจากลูกค้ารายอื่นได้

ช่องโหว่ใน Cloudflare Containers ทำให้ลูกค้าสามารถอ่านข้อมูลที่ Container ของลูกค้ารายอื่นทิ้งไว้บน Server เดียวกันได้ โดย Cloudflare และนักวิจัยด้านความปลอดภัยที่ค้นพบช่องโหว่เปิดเผยเรื่องนี้เมื่อวันพฤหัสบดีที่ผ่านมา

ข้อมูลดังกล่าวมาจากพื้นที่ Disk ที่ Container ก่อนหน้านี้เคยใช้งาน และถูกคืนกลับมา ไม่ใช่ข้อมูลจาก Live Workload ที่กำลังทำงานอยู่ และผู้โจมตีไม่สามารถเลือกได้ว่าจะได้รับข้อมูลของลูกค้ารายใด ตามข้อมูลของ Cloudflare บริษัทได้แก้ไขช่องโหว่นี้ทั่วทั้ง Service แล้ว และระบุว่าลูกค้าไม่จำเป็นต้องดำเนินการใด ๆ

Cloudflare Containers ทำงานโดยรันโปรแกรมของลูกค้าภายใน Container บน Server ที่ถูกแชร์โดยหลาย Account โดย Cloudflare เป็นผู้เลือก Server ให้กับลูกค้า ไม่ใช่ลูกค้าเลือกเอง นอกจากนี้ Cloudflare Sandboxes ซึ่งทำงานอยู่บน Containers และให้บริการในฐานะพื้นที่ปลอดภัยสำหรับการรัน Untrusted Code รวมถึง Code ที่เขียนโดย AI Agents ก็ได้รับผลกระทบจากช่องโหว่นี้เช่นกัน

ช่องโหว่นี้ถูกรายงานเมื่อวันที่ 4 กันยายน โดย Oren Yomtov จากบริษัท Security Firm ชื่อ Accomplish ผ่านทาง Cloudflare Bug Bounty Program

ปัญหาเกิดจากวิธีการตั้งค่า Shared Disk โดยแต่ละ Container จะได้รับ Disk ที่สร้างขึ้นด้วย Feature ของ Linux ที่เรียกว่า Thin Provisioning ซึ่งจัดสรรพื้นที่ Storage เป็น Block ขนาด 64 Kilobytes เมื่อ Container ถูกลบ Block เหล่านี้จะถูกส่งกลับเข้าสู่ Pool ที่ใช้ร่วมกันระหว่าง Customer Accounts

Pool ดังกล่าวถูกตั้งค่าให้ข้ามขั้นตอนการ Wipe Block ก่อนที่จะนำไปส่งให้กับ Container ใหม่ ทั้งที่โดยปกติการ Wipe จะเป็นค่า Default ดังนั้นเมื่อ Container ใหม่เขียนข้อมูลเพียงเล็กน้อยลงใน Block ที่ถูกนำกลับมาใช้ใหม่ ส่วนที่เหลือของ Block จะยังคงมีข้อมูลจาก Container ก่อนหน้าอยู่

เพื่อเข้าถึงข้อมูลดังกล่าว นักวิจัยได้เขียนข้อมูลขนาดเล็กเพียง 4 Kilobytes ลงในพื้นที่ที่ไม่ได้ใช้งาน จากนั้นอ่าน Block ทั้งหมดกลับออกมาที่ระดับ Raw Disk พบว่าอีก 60 Kilobytes ที่ไม่ได้ถูกเขียนทับยังคงมีข้อมูลจาก Container ก่อนหน้าอยู่

จากการทดสอบใน Production Environment นักวิจัยรายงานว่าสามารถพบข้อมูลที่หลงเหลืออยู่ได้ในการทดลอง 18 จาก 24 ครั้ง โดยแต่ละครั้งเกิดขึ้นบน Server ที่ Cloudflare เป็นผู้เลือก และพบข้อมูลใน 20 จาก 22 เครื่อง Underlying Machine ที่อยู่ใน 4 ทวีป

Cloudflare ระบุว่า Block ที่กู้คืนมาได้นั้นมี Directory Structures, Database Pages และ SQLite Databases ที่มีโครงสร้างสมบูรณ์ ขณะที่รายงานของนักวิจัยระบุเพิ่มเติมว่าพบ Directory Listings, SQLite Databases, Chromium Browser Profiles, .env Files และ Credential Files ซึ่งถูกอธิบายว่าเป็นไฟล์ของลูกค้ารายอื่น

นักวิจัยระบุว่า Analysis Scripts ของพวกเขาแสดงผลเพียงจำนวนข้อมูล และการตรวจสอบ Format เท่านั้น ไม่ได้แสดง File Contents และข้อมูลที่ส่งให้ Cloudflare ไม่มีชื่อบุคคลภายนอก, Identifiers, Credentials หรือ Content ที่กู้คืนมาได้

Cloudflare ระบุเพิ่มเติมว่า นักวิจัยยืนยันว่าข้อมูลที่กู้คืนมาได้รับการเก็บรักษาเป็นความลับ และถูกลบอย่างปลอดภัยหลังจากส่งรายงานให้บริษัทแล้ว ทั้งนี้นักวิจัยไม่สามารถแสดงให้เห็นว่าช่องโหว่นี้สามารถใช้เพื่อแก้ไข Live Data ของลูกค้ารายอื่นหรือทำให้ Workload หยุดทำงานได้

Cloudflare แก้ไขช่องโหว่นี้เป็น 2 ขั้นตอน โดยขั้นแรกคือเปิดใช้งานการ Wipe อีกครั้งสำหรับ Block ที่ถูกแจกให้ Container ใหม่ ซึ่งสามารถหยุดวิธีการโจมตีที่ถูกรายงานได้ นักวิจัยยืนยันเมื่อวันที่ 14 กันยายนว่า Proof of Concept (PoC) ของพวกเขาไม่สามารถทำงานได้อีกต่อไป

อย่างไรก็ตาม การเปลี่ยนแปลงดังกล่าวไม่ได้ Clean Block ที่ถูก Map เข้าไปใน Disk ของ Container ที่กำลังทำงานอยู่แล้ว หรืออยู่ใน Cache ของ Prepared Image Layers ของแต่ละ Server ซึ่ง Container ใหม่สามารถ Inherit และอ่านข้อมูลเหล่านี้ได้ ดังนั้น Cloudflare จึงดำเนินการเพิ่มเติมด้วยการยกเลิก Running Container Disks ทั้งหมด และล้าง Cache ดังกล่าว พร้อมทั้ง Drain และ Restart Server ในช่วงเวลาที่มีการใช้งานต่ำ การ Cleanup เสร็จสิ้นเมื่อวันที่ 19 กันยายน และ Cloudflare เปิดเผยรายละเอียดของช่องโหว่นี้ในอีก 5 วันต่อมา

Cloudflare ระบุว่า ได้ตรวจสอบหาสัญญาณที่อาจบ่งชี้ว่ามีบุคคลอื่นใช้วิธีการดังกล่าว โดยบริษัทสร้าง Detection Signatures จาก PoC ของนักวิจัย และจากสำเนาการโจมตีที่ทีมของ Cloudflare สร้างขึ้นเอง จากนั้นนำไปตรวจสอบกับ Disk Activity Records ที่บริษัทเก็บไว้ ผลการตรวจสอบพบเพียงการทดสอบที่ได้รับอนุญาตจากนักวิจัย และวิศวกรของ Cloudflare เอง และไม่พบหลักฐานว่ามีบุคคลอื่นใช้วิธีการนี้

อย่างไรก็ตาม ผลการตรวจสอบดังกล่าวครอบคลุมเฉพาะ Records ที่ Cloudflare เก็บรักษาไว้ โดยบริษัทไม่ได้ระบุว่าข้อมูลดังกล่าวครอบคลุมช่วงเวลาใด หรือการตั้งค่าที่ไม่ปลอดภัยถูกนำมาใช้งานตั้งแต่เมื่อใด ดังนั้นจึงยังไม่สามารถระบุได้อย่างชัดเจนว่าช่องโหว่นี้ทำให้เกิด Exposure เป็นระยะเวลานานเท่าใด

นักวิจัยระบุเพิ่มเติมว่า Disk Setup แบบเดียวกันนี้ส่งผลกระทบต่อผลิตภัณฑ์ Cloudflare Browser Run ด้วย และอธิบายว่าช่องโหว่นี้เป็นครั้งที่ 6 ที่พวกเขาค้นพบ Code Sandbox Escape และเผยแพร่ออกมาตั้งแต่เดือนกรกฎาคม โดยก่อนหน้านี้พบใน Anthropic's Claude Cowork, Claude Code, Cursor's Command-Line Tool, Docker และ OpenAI's Codex อย่างไรก็ตาม รายงานของ Cloudflare ระบุว่าผลิตภัณฑ์ที่ได้รับผลกระทบคือ Containers และ Sandboxes และไม่ได้กล่าวถึง Browser Run

ที่มา : Thehackernews