Khám phá lỗ hổng CVE nghiêm trọng trên Docker mang tên CopyEscape
Một lỗ hổng CVE mới được định danh là CVE-2026-17106, có biệt danh là CopyEscape, đã được công bố gần đây. Đây là một vấn đề kỹ thuật nghiêm trọng cho phép các container độc hại ghi tệp tin ra bên ngoài đích đến dự kiến của lệnh docker cp, dẫn đến nguy cơ tiềm ẩn về thực thi mã và chiếm quyền điều khiển ở cấp độ root.
Vấn đề này ảnh hưởng trực tiếp đến cách Docker xử lý quá trình giải nén lưu trữ trong thư viện moby/go-archive. Theo thông tin từ Imperva, lỗ hổng này biến một thao tác sao chép tệp tin thông thường trở thành một rủi ro bảo mật nghiêm trọng trên hệ thống chủ.
Cơ chế khai thác và kỹ thuật của CopyEscape
Khi người dùng thực hiện lệnh copy từ container sang máy chủ, Docker không thực hiện truyền dữ liệu trực tiếp. Thay vào đó, Docker daemon đóng gói các tệp tin vào một kho lưu trữ tar, sau đó Docker CLI thực hiện giải nén kho lưu trữ đó bằng quyền của người dùng đang chạy lệnh.
Kẻ tấn công có thể kiểm soát container nguồn để thao túng quá trình này bằng cách đặt một symlink trỏ ra ngoài thư mục đích. Khi Docker CLI giải nén kho lưu trữ, nó có thể đi theo symlink này và ghi tệp tin vào bất kỳ vị trí nào trên hệ thống tệp của máy chủ.
Tác động và rủi ro an toàn thông tin
Chuỗi tấn công này kết hợp hai điểm yếu kỹ thuật chính. Đầu tiên là một cuộc tấn công race condition (time-of-check to time-of-use) trong quá trình tạo lưu trữ, cho phép container đang chạy thay đổi thư mục thành một symbolic link trong khi Docker đang duyệt qua hệ thống tệp.
Kết quả là một kho lưu trữ tar không nhất quán được tạo ra, mô tả cùng một đường dẫn vừa là thư mục vừa là symlink. Thứ hai, các tiến trình giải nén không đảm bảo việc cô lập tệp tin được ghi vào thư mục đích sau khi các liên kết hệ thống đã được phân giải.
Sự cố này có thể dẫn đến việc ghi đè các tệp tin nhạy cảm trên máy chủ như tệp khởi động shell, cấu hình SSH, thông tin xác thực đám mây hoặc mã nguồn. Trên các hệ thống Linux, nếu lệnh sudo docker cp được sử dụng, kẻ tấn công có thể thay thế tệp tin thực thi hệ thống để chiếm quyền root.
Cập nhật bản vá và biện pháp phòng ngừa
Docker đã chính thức phát hành các bản cập nhật để khắc phục lỗ hổng CVE này trong Docker Desktop phiên bản 4.86.0. Người dùng cần nâng cấp ngay lập tức các thành phần Docker Engine và Docker CLI lên các phiên bản đã được vá lỗi.
- Nâng cấp Docker Desktop lên phiên bản 4.86.0 hoặc mới hơn.
- Đảm bảo các gói moby/go-archive được cập nhật lên phiên bản 0.3.0 trở lên.
- Tránh sử dụng sudo docker cp đối với các container không đáng tin cậy.
- Dừng container trước khi thực hiện thao tác sao chép để ngăn chặn các cuộc tấn công race condition.
Trong khi chờ đợi các cập nhật được triển khai, các tổ chức nên hạn chế quyền truy cập root trong các tác vụ thu thập artifact của hệ thống CI. Đồng thời, việc truy xuất dữ liệu từ các container nghi vấn nên được thực hiện trong các môi trường ảo hóa tách biệt hoặc máy ảo dùng một lần.










