-
09/04/2020
-
122
-
1.255 bài viết
Ba lỗ hổng nghiêm trọng trong runC có thể cho phép hacker vượt rào Docker
Một loạt lỗ hổng mới được công bố trong runC - công cụ lõi vận hành container của Docker và Kubernetes đang khiến cộng đồng an ninh mạng quan ngại. Các lỗ hổng này có thể bị khai thác để vượt qua cơ chế cách ly container và chiếm quyền điều khiển hệ thống host, dẫn tới nguy cơ tấn công leo thang đặc quyền nghiêm trọng.
Ba lỗ hổng có mã định danh lần lượt là CVE-2025-31133, CVE-2025-52565 và CVE-2025-52881. runC là runtime tiêu chuẩn của OCI, đóng vai trò tạo tiến trình container, thiết lập namespace, mount và cgroup hay còn gọi là các thành phần mà Docker và Kubernetes dựa vào để khởi tạo container an toàn.
Theo phân tích kỹ thuật, lỗ hổng CVE-2025-31133 cho phép kẻ tấn công thay thế /dev/null bằng một liên kết tượng trưng (symlink) trỏ tới tệp do chúng kiểm soát trong quá trình khởi tạo container. Khi đó, runC vô tình gắn mục tiêu do kẻ tấn công chỉ định vào trong container ở chế độ cho phép ghi, khiến hacker có thể ghi đè lên các tập tin hệ thống như /proc và thoát khỏi vùng cách ly.
Lỗ hổng CVE-2025-52565 có cơ chế tương tự nhưng khai thác thông qua /dev/console, trong khi CVE-2025-52881 cho phép ghi tùy ý vào các tệp trong /proc, thậm chí vượt qua lớp bảo vệ của LSM (Linux Security Module), biến những thao tác bình thường của runC thành hành vi nguy hiểm như kích hoạt /proc/sysrq-trigger.
Các nhà nghiên cứu cho biết, hai lỗ hổng đầu tiên ảnh hưởng đến mọi phiên bản runC, còn CVE-2025-52565 ảnh hưởng từ phiên bản 1.0.0-rc3 trở lên. Hiện các bản vá đã được phát hành với các phiên bản runC 1.2.8, 1.3.3, 1.4.0-rc3 và cao hơn. Người dùng được khuyến cáo cập nhật ngay các bản runtime hoặc gói Docker/containerd tích hợp runC.
Về khả năng khai thác, các chuyên gia cho biết kẻ tấn công cần có quyền tạo hoặc chạy container với cấu hình gắn kết (mount) tùy chỉnh. Điều này có thể xảy ra nếu hệ thống cho phép người dùng tải lên container image hoặc Dockerfile độc hại. Mặc dù cần có quyền truy cập ban đầu, nếu khai thác thành công, kẻ tấn công có thể giành toàn quyền điều khiển máy chủ (root). Hiện chưa ghi nhận vụ tấn công thực tế nào, nhưng rủi ro vẫn ở mức cao, đặc biệt trong môi trường chia sẻ hoặc đa người dùng.
Để giảm thiểu rủi ro, các chuyên gia khuyến nghị cập nhật ngay runC, Docker và Kubernetes lên phiên bản đã được vá, đồng thời bật cơ chế user namespaces cho tất cả container và hạn chế ánh xạ người dùng root của host vào bên trong. Việc vận hành container ở chế độ rootless cũng giúp giảm đáng kể thiệt hại nếu có sự cố.
Ngoài ra, cần kiểm soát chặt quyền khởi tạo container với cấu hình mount tùy chỉnh và giám sát hành vi bất thường như tạo liên kết tượng trưng (symlink) đến /dev/null, /dev/console hoặc thao tác ghi đáng ngờ vào /proc.
Trong bối cảnh Docker và Kubernetes được sử dụng phổ biến tại Việt Nam và trên thế giới, cập nhật kịp thời và tuân thủ quy trình bảo mật là cách duy nhất để ngăn “vượt rào” container trở thành hiện thực.
Ba lỗ hổng có mã định danh lần lượt là CVE-2025-31133, CVE-2025-52565 và CVE-2025-52881. runC là runtime tiêu chuẩn của OCI, đóng vai trò tạo tiến trình container, thiết lập namespace, mount và cgroup hay còn gọi là các thành phần mà Docker và Kubernetes dựa vào để khởi tạo container an toàn.
Theo phân tích kỹ thuật, lỗ hổng CVE-2025-31133 cho phép kẻ tấn công thay thế /dev/null bằng một liên kết tượng trưng (symlink) trỏ tới tệp do chúng kiểm soát trong quá trình khởi tạo container. Khi đó, runC vô tình gắn mục tiêu do kẻ tấn công chỉ định vào trong container ở chế độ cho phép ghi, khiến hacker có thể ghi đè lên các tập tin hệ thống như /proc và thoát khỏi vùng cách ly.
Lỗ hổng CVE-2025-52565 có cơ chế tương tự nhưng khai thác thông qua /dev/console, trong khi CVE-2025-52881 cho phép ghi tùy ý vào các tệp trong /proc, thậm chí vượt qua lớp bảo vệ của LSM (Linux Security Module), biến những thao tác bình thường của runC thành hành vi nguy hiểm như kích hoạt /proc/sysrq-trigger.
Các nhà nghiên cứu cho biết, hai lỗ hổng đầu tiên ảnh hưởng đến mọi phiên bản runC, còn CVE-2025-52565 ảnh hưởng từ phiên bản 1.0.0-rc3 trở lên. Hiện các bản vá đã được phát hành với các phiên bản runC 1.2.8, 1.3.3, 1.4.0-rc3 và cao hơn. Người dùng được khuyến cáo cập nhật ngay các bản runtime hoặc gói Docker/containerd tích hợp runC.
Về khả năng khai thác, các chuyên gia cho biết kẻ tấn công cần có quyền tạo hoặc chạy container với cấu hình gắn kết (mount) tùy chỉnh. Điều này có thể xảy ra nếu hệ thống cho phép người dùng tải lên container image hoặc Dockerfile độc hại. Mặc dù cần có quyền truy cập ban đầu, nếu khai thác thành công, kẻ tấn công có thể giành toàn quyền điều khiển máy chủ (root). Hiện chưa ghi nhận vụ tấn công thực tế nào, nhưng rủi ro vẫn ở mức cao, đặc biệt trong môi trường chia sẻ hoặc đa người dùng.
Để giảm thiểu rủi ro, các chuyên gia khuyến nghị cập nhật ngay runC, Docker và Kubernetes lên phiên bản đã được vá, đồng thời bật cơ chế user namespaces cho tất cả container và hạn chế ánh xạ người dùng root của host vào bên trong. Việc vận hành container ở chế độ rootless cũng giúp giảm đáng kể thiệt hại nếu có sự cố.
Ngoài ra, cần kiểm soát chặt quyền khởi tạo container với cấu hình mount tùy chỉnh và giám sát hành vi bất thường như tạo liên kết tượng trưng (symlink) đến /dev/null, /dev/console hoặc thao tác ghi đáng ngờ vào /proc.
Trong bối cảnh Docker và Kubernetes được sử dụng phổ biến tại Việt Nam và trên thế giới, cập nhật kịp thời và tuân thủ quy trình bảo mật là cách duy nhất để ngăn “vượt rào” container trở thành hiện thực.
Theo Bleeping Computer