Họ đã phát hiện ra lỗ hổng cho phép thực thi mã bên ngoài vùng chứa và ảnh hưởng đến Docker và Kubernetes

dễ bị tổn thương

Nếu bị khai thác, những lỗ hổng này có thể cho phép kẻ tấn công truy cập trái phép vào thông tin nhạy cảm hoặc thường gây ra sự cố

Gần đây tin tức về dphát hiện các lỗ hổng mới trong runC (một công cụ CLI để xây dựng và chạy các container trên Linux) CVE-2024-21626 và trong BuildKit (CVE-2024-23651, CVE-2024-23652 và CVE-2024-23653), một trong những mối quan tâm lớn nhất CVE-2024-21626, vì đây là lỗ hổng nghiêm trọng cho phép truy cập vào hệ thống tệp của hệ điều hành máy chủ.

CVE-2024-21626 cho phép truy cập vào hệ thống tệp môi trường máy chủ từ một vùng chứa bị cô lập. Trong cuộc tấn công, kẻ tấn công có thể ghi đè một số tệp thực thi trong môi trường máy chủ và thực thi mã của chúng bên ngoài vùng chứa.

Điều này đặc biệt liên quan đến các môi trường như Kubernetes, nơi các container chạy trên các nút chia sẻ. Bằng cách khai thác lỗ hổng này, kẻ tấn công có thể giành quyền kiểm soát đặc quyền đối với máy chủ, có khả năng cấp quyền truy cập trái phép vào các nhóm và dữ liệu khác của những người khác trên cùng một nút.

Hơn nữa, lỗ hổng này cũng ảnh hưởng đến quá trình xây dựng đang chạy trong môi trường container, tạo cơ hội cho kẻ tấn công thiết lập chỗ đứng trong quá trình xây dựng. Kịch bản này có thể dẫn đến việc kẻ tấn công có được thông tin xác thực nâng cao, điều này sẽ cấp cho bạn quyền truy cập vào khối lượng công việc sản xuất quan trọng hoặc các môi trường nhạy cảm khác. Về bản chất, tác động này không chỉ dừng lại ở việc rò rỉ thông tin hoặc thực thi mã tùy ý mà còn có thể làm tổn hại đến tính toàn vẹn và bảo mật của toàn bộ môi trường phát triển và sản xuất.

Trong môi trường sử dụng Docker hoặc Kubernetes, một cuộc tấn công có thể được thực hiện bằng cách sử dụng hình ảnh vùng chứa được chế tạo đặc biệt. Sau khi hình ảnh này được cài đặt và khởi chạy, kẻ tấn công có thể truy cập hệ thống tệp bên ngoài từ vùng chứa. Trong trường hợp Docker, có thể hoạt động thông qua Dockerfile được thiết kế đặc biệt. Lỗ hổng này cũng có thể bị khai thác nếu các tiến trình được khởi động trong vùng chứa bằng lệnh "runc exec" và liên kết thư mục làm việc với không gian tên của môi trường máy chủ.

Vấn đề chính là rò rỉ bộ mô tả tập tin và trong khi thực hiện O_CLOEXEC, tất cả mô tả tệp trước khi thực thi mã vùng chứa, tệp bộ mô tả được mở khi thực hiện setcwd(2), có nghĩa là tham chiếu có thể được duy trì trong thùng chứa bằng cách thiết lập chế độ làm việc của thư mục dưới dạng đường dẫn được giải quyết thông qua bộ mô tả tệp (yeBit không thể kết xuất không được đặt sau execve(2), có nghĩa là có nhiều cách để tấn công điều này bên cạnh cấu hình xấu).

Nguyên nhân lỗ hổng nằm ở việc rò rỉ bộ mô tả file nội bộ. Trước khi thực thi mã bên trong vùng chứa, runc sẽ đóng tất cả các bộ mô tả tệp bằng cờ O_CLOEXEC. Tuy nhiên, các lần thực thi tiếp theo của setcwd() để mở một bộ mô tả tệp trỏ đến thư mục làm việc và vẫn có thể truy cập được sau khi vùng chứa được khởi động. Một số kịch bản cơ bản đã được đề xuất để tấn công môi trường máy chủ bằng cách sử dụng bộ mô tả tệp còn lại.

Nó được đề cập rằng một ví dụ về khai thác lỗ hổng là nếu một container được cấu hình:

Để đặt process.cwd thành /proc/self/fd/7/, quy trình pid1 thu được sẽ có một thư mục hoạt động trong không gian tên mount của máy chủ và do đó quy trình được sinh ra sẽ có thể truy cập vào toàn bộ tệp hệ thống. Riêng điều này không phải là một lợi thế chống lại runc. Kẻ tấn công cũng có thể lừa người dùng chạy hình ảnh vùng chứa độc hại, cho phép quá trình vùng chứa tiếp cận hệ thống tệp máy chủ thông qua runc. Điều này có thể mở rộng đến việc ghi đè các tệp nhị phân của máy chủ, dẫn đến việc thoát hoàn toàn vùng chứa. 

Cuối cùng, cần đề cập rằng Lỗ hổng đã được sửa trong phiên bản runc 1.1.12, vì vậy khuyến nghị là cập nhật lên phiên bản mới. Nếu bạn muốn tìm hiểu thêm về nó có thể tham khảo chi tiết Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.