Hai lỗ hổng đã được tìm thấy trong Snap và được phép chạy mã dưới quyền root

Qualys ra mắt tin tức mà tôi xác định hai lỗ hổng (CVE-2021-44731 và CVE-2021-44730) trong tiện ích snap-confine, được gửi với cờ SUID gốc và được gọi bởi quy trình snapd để tạo môi trường thực thi cho các ứng dụng được phân phối trong các gói snap.

Trong bài đăng trên blog có đề cập rằng lỗ hổng bảo mật cho phép người dùng cục bộ không có đặc quyền đạt được thực thi mã dưới dạng root trong hệ thống.

Lỗ hổng đầu tiên cho phép tấn công thao túng liên kết vật lý, nhưng yêu cầu tắt tính năng bảo vệ liên kết cứng của hệ thống (bằng cách đặt sysctl fs.protected_hardlinks thành 0).

Vấn đề đó là do xác minh không chính xác về vị trí của các tệp thực thi của các tiện ích snap-update-ns và snap-discard-ns chạy dưới dạng root. Đường dẫn đến các tệp này được tính toán trong hàm sc_open_snapd_tool () dựa trên đường dẫn riêng của nó từ / proc / self / exe, cho phép bạn tạo một liên kết cứng để giới hạn trong thư mục của bạn và đặt các tùy chọn của bạn để snap-update-ns và snap -discard-ns trong thư mục này. Khi được khởi chạy từ một liên kết cứng, snap-confine as root sẽ thực thi các tệp snap-update-ns và snap-discard-ns được kẻ tấn công thay thế từ thư mục hiện tại.

Việc khai thác thành công lỗ hổng này cho phép bất kỳ người dùng không có đặc quyền nào cũng có được đặc quyền root trên máy chủ dễ bị tấn công. Các nhà nghiên cứu bảo mật của Qualys đã có thể xác minh độc lập lỗ hổng, phát triển cách khai thác và giành toàn quyền root trên các bản cài đặt Ubuntu mặc định.

Ngay sau khi nhóm nghiên cứu của Qualys xác nhận lỗ hổng, chúng tôi đã tham gia vào việc tiết lộ lỗ hổng có trách nhiệm và phối hợp với nhà cung cấp và phân phối nguồn mở để thông báo lỗ hổng mới được phát hiện này.

Lỗ hổng thứ hai là do tình trạng chủng tộc và có thể được khai thác trong cấu hình máy tính để bàn Ubuntu mặc định. Để việc khai thác hoạt động thành công trên Ubuntu Server, bạn phải chọn một trong các gói từ phần "Các Snaps Máy chủ Nổi bật" trong khi cài đặt.

điều kiện của cuộc đua kê khai trong hàm setup_private_mount () được gọi trong quá trình chuẩn bị không gian tên điểm gắn kết cho gói tức thời. Hàm này tạo một thư mục tạm thời "/tmp/snap.$SNAP_NAME/tmp" hoặc sử dụng một thư mục hiện có để liên kết và gắn kết các thư mục cho gói snap vào nó.

Vì tên của thư mục tạm thời có thể đoán được, kẻ tấn công có thể thay đổi nội dung của nó thành một liên kết tượng trưng sau khi xác minh chủ sở hữu, nhưng trước khi gọi hệ thống gắn kết. Ví dụ: bạn có thể tạo một liên kết biểu tượng "/tmp/snap.lxd/tmp" trong thư mục /tmp/snap.lxd trỏ đến một thư mục tùy ý và lệnh gọi mount () sẽ đi theo liên kết biểu tượng và gắn kết thư mục trong không gian. tên.

Tương tự, bạn có thể gắn kết nội dung của nó trong / var / lib và ghi đè /var/lib/snapd/mount/snap.snap-store.user-fstab, sắp xếp để gắn thư mục / etc của bạn trong snap không gian tên gói để tải thư viện của bạn từ quyền truy cập root bằng cách thay thế /etc/ld.so.preload.

Người ta quan sát thấy rằng tạo ra một khai thác hóa ra là một nhiệm vụ không tầm thường, vì tiện ích snap-confine được viết bằng kỹ thuật lập trình an toàn (snapd được viết bằng Go, nhưng C được sử dụng cho snap-confine), có tính năng bảo vệ dựa trên cấu hình AppArmor, lọc các lệnh gọi hệ thống dựa trên cơ chế seccomp và sử dụng không gian tên gắn kết để cách ly.

Tuy nhiên, các nhà nghiên cứu đã có thể chuẩn bị một khai thác chức năng để có được quyền truy cập root trên hệ thống. Mã khai thác sẽ được phát hành vài tuần sau khi người dùng cài đặt các bản cập nhật được cung cấp.

Cuối cùng, điều đáng nói làCác sự cố đã được khắc phục trong bản cập nhật gói snapd cho các phiên bản Ubuntu 21.10, 20.04 và 18.04.

Ngoài các bản phân phối khác sử dụng Snap, Snapd 2.54.3 đã được phát hành, ngoài các sự cố trên, còn sửa một lỗ hổng khác (CVE-2021-4120), cho phép khi cài đặt các gói plugin được thiết kế đặc biệt, ghi đè các quy tắc AppArmor tùy ý và bỏ qua các giới hạn truy cập được đặt cho gói.

Nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các 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.