Một lỗ hổng trong Cloudflare Containers đã cho phép một khách hàng trả phí đọc được dữ liệu mà container của các khách hàng khác để lại trên cùng một máy chủ, Cloudflare và các nhà nghiên cứu phát hiện ra lỗi này cho biết vào thứ Năm.
Dữ liệu này đến từ không gian ổ đĩa mà các container trước đó đã sử dụng và giải phóng, không phải từ bất kỳ khối lượng công việc đang hoạt động (live workload) nào, và kẻ tấn công không thể chọn dữ liệu của ai mà họ muốn lấy, theo Cloudflare. Công ty đã khắc phục lỗ hổng này trên toàn bộ dịch vụ và cho biết khách hàng không cần thực hiện bất kỳ hành động nào.
Cloudflare Containers chạy các chương trình của khách hàng bên trong các container trên các máy chủ được chia sẻ bởi nhiều tài khoản, và Cloudflare chứ không phải khách hàng là bên chọn máy chủ. Cloudflare Sandboxes, chạy trên Containers và được bán như một nơi an toàn để chạy mã không tin cậy, bao gồm cả mã được viết bởi các AI agents, cũng bị ảnh hưởng.
Lỗ hổng được báo cáo vào ngày 4 tháng 9 bởi Oren Yomtov thuộc công ty bảo mật Accomplish, thông qua chương trình bug bounty của Cloudflare.
Nguyên nhân từ cơ chế Thin Provisioning
Vấn đề nằm ở cách thiết lập các ổ đĩa dùng chung. Mỗi container nhận được một ổ đĩa được xây dựng bằng một tính năng Linux gọi là thin provisioning, tính năng này phân bổ bộ nhớ theo các khối 64-kilobyte. Khi một container bị xóa, các khối của nó sẽ quay trở lại một nhóm (pool) được chia sẻ giữa các tài khoản khách hàng.
Nhóm đó được thiết lập để bỏ qua việc xóa sạch một khối (skip wiping a block) trước khi bàn giao cho container tiếp theo, mặc dù việc xóa sạch thường là mặc định. Vì vậy, khi một container mới chỉ ghi một lượng nhỏ vào một khối được tái sử dụng, phần còn lại của khối vẫn chứa dữ liệu của container trước đó.
Để tiếp cận dữ liệu này, các nhà nghiên cứu đã ghi một khối nhỏ 4 kilobyte vào không gian chưa sử dụng và sau đó đọc lại toàn bộ khối ở cấp độ ổ đĩa thô (raw disk). 60 kilobyte mà họ không ghi vẫn chứa các byte từ một container trước đó.
Qua các thử nghiệm trên môi trường production, họ báo cáo tìm thấy dữ liệu còn sót lại trong 18 trên 24 lần thử, mỗi lần trên một máy chủ do Cloudflare chọn, và trên 20 trong số 22 máy cơ sở tại bốn châu lục.
Dữ liệu nhạy cảm bị rò rỉ
Các khối được khôi phục chứa cấu trúc thư mục, các trang cơ sở dữ liệu và các cơ sở dữ liệu SQLite hoàn chỉnh về mặt cấu trúc, Cloudflare cho biết. Bản tường thuật riêng của các nhà nghiên cứu đã liệt kê danh sách thư mục, cơ sở dữ liệu SQLite, hồ sơ trình duyệt Chromium, tệp .env và tệp thông tin đăng nhập (credential), đồng thời mô tả chúng là tệp của các khách hàng khác.
Các nhà nghiên cứu báo cáo rằng các script phân tích của họ chỉ xuất ra số lượng và kiểm tra định dạng, không phải nội dung tệp, và tài liệu họ gửi cho Cloudflare không chứa tên, mã định danh, thông tin đăng nhập của bên thứ ba hoặc nội dung được khôi phục.
Họ cũng xác nhận dữ liệu khôi phục được giữ kín và được xóa an toàn sau khi gửi, Cloudflare cho biết. Các nhà nghiên cứu không chứng minh được rằng lỗ hổng có thể thay đổi dữ liệu trực tiếp của khách hàng khác hoặc làm ngừng hoạt động một khối lượng công việc.
Quy trình khắc phục của Cloudflare
Cloudflare đã sửa lỗi theo hai bước. Đầu tiên, họ bật lại tính năng xóa sạch cho các khối mới được bàn giao, điều này đã chặn đứng phương pháp được báo cáo; các nhà nghiên cứu xác nhận vào ngày 14 tháng 9 rằng proof of concept của họ không còn hoạt động.
Tuy nhiên, thay đổi đó không làm sạch các khối đã được ánh xạ vào các ổ đĩa container đang chạy hoặc vào bộ nhớ đệm (cache) của mỗi máy chủ về các lớp hình ảnh (image layers) đã chuẩn bị, mà một container mới có thể kế thừa và đọc. Vì vậy, Cloudflare cũng đã cho dừng mọi ổ đĩa container đang chạy và xóa sạch các bộ nhớ đệm đó, rút cạn (draining) và khởi động lại các máy chủ trong những giờ thấp điểm. Họ đã hoàn tất việc dọn dẹp vào ngày 19 tháng 9 và công bố lỗ hổng năm ngày sau đó.
Cloudflare cho biết họ đã tìm kiếm các dấu hiệu cho thấy có ai khác sử dụng phương pháp này bằng cách xây dựng các chữ ký phát hiện (detection signatures) từ proof of concept của các nhà nghiên cứu và chạy chúng đối với các bản ghi hoạt động ổ đĩa. Họ chỉ tìm thấy các thử nghiệm được ủy quyền và cho biết không thấy bằng chứng nào cho thấy phương pháp cụ thể này được sử dụng bởi bất kỳ ai khác.
Các nhà nghiên cứu, những người cho biết cùng một thiết lập ổ đĩa đã ảnh hưởng đến sản phẩm Browser Run của Cloudflare, mô tả đây là lần thoát khỏi sandbox mã (code sandbox escape) thứ sáu của họ được công bố kể từ tháng 7, sau các phát hiện trong Anthropic's Claude Cowork và Claude Code, công cụ dòng lệnh của Cursor, Docker và OpenAI's Codex.