Một lỗ hổng nghiêm trọng trong sudo cho phép bạn có được đặc quyền root

Các Các nhà nghiên cứu bảo mật của Qualys đã xác định được một lỗ hổng nghiêm trọng (CVE-2021-3156) trong tiện ích sudo, được thiết kế để tổ chức thực thi lệnh thay mặt cho những người dùng khác.

Lỗ hổng cho phép truy cập chưa được xác thực với đặc quyền root. Vấn đề có thể được sử dụng bởi bất kỳ người dùng nào, bất kể sự hiện diện trong các nhóm hệ thống và sự hiện diện của một mục nhập trong tệp / etc / sudoers.

Cuộc tấn công không yêu cầu nhập mật khẩu của người dùng, nghĩa là, lỗ hổng bảo mật có thể được người bên ngoài sử dụng để nâng cao đặc quyền trên hệ thống sau khi lỗ hổng bảo mật đã bị xâm phạm trong một quy trình không có đặc quyền (bao gồm cả những quy trình bắt đầu với người dùng "không ai").

Để tìm kiếm lỗ hổng trên hệ thống của bạn, chỉ cần chạy lệnh "sudoedit -s /" và lỗ hổng bảo mật sẽ xuất hiện nếu thông báo lỗi bắt đầu bằng "sudoedit:" được hiển thị.

Về lỗ hổng

Lỗ hổng bảo mật đã xuất hiện từ tháng 2011 năm XNUMX và do tràn bộ đệm trong việc xử lý các ký tự thoát dòng trong các tham số nhằm thực hiện các lệnh trong chế độ shell. Chế độ shell được kích hoạt bằng cách chỉ định các đối số "-i" hoặc "-s" và khiến lệnh không được thực thi trực tiếp mà thông qua lệnh gọi bổ sung với cờ "-c" ("lệnh sh -c»).

Điểm mấu chốt là khi tiện ích sudo được chạy bình thường, nó thoát khỏi các ký tự đặc biệt bằng cách chỉ định các tùy chọn "-i" và "-s", nhưng khi khởi động tiện ích sudoedit, các tham số không được thoát, như parse_args () Hàm đặt biến môi trường MODE_EDIT thay vì MODE_SHELL và không đặt lại giá trị của "valid_flags".

Đổi lại, truyền ký tự không thoát tạo điều kiện cho lỗi khác xuất hiện trong bộ điều khiển, loại bỏ các ký tự thoát trước khi kiểm tra các quy tắc sudoer.

Trình xử lý phân tích cú pháp sai sự hiện diện của ký tự dấu gạch chéo ngược mà không thoát ở cuối dòng, nó coi như dấu gạch chéo ngược này thoát ra một ký tự nữa và tiếp tục đọc dữ liệu vượt quá giới hạn của dòng, sao chép nó vào vùng đệm "user_args" và ghi đè các vùng nhớ bên ngoài vùng đệm.

Và nó được đề cập rằng khi cố gắng thao tác các giá trị trong dòng lệnh sudoedit, kẻ tấn công có thể đạt được sự chồng chất của một hàng đợi ghi lại trong dữ liệu ảnh hưởng đến quá trình tiếp theo của công việc.

Ngoài việc tạo ra một khai thác, nó đơn giản hóa thực tế là kẻ tấn công có toàn quyền kiểm soát kích thước của bộ đệm user_args, tương ứng với kích thước của tất cả các đối số được truyền vào và cũng kiểm soát kích thước và nội dung của dữ liệu được ghi bên ngoài bộ đệm bằng cách sử dụng các biến môi trường.

Các nhà nghiên cứu bảo mật của Qualys đã quản lý để chuẩn bị ba cách khai thác, công việc của chúng dựa trên việc viết lại nội dung của các cấu trúc sudo_hook_entry, service_user và def_timestampdir:

  • Bằng cách hủy bỏ sudo_hook_entry, một tệp nhị phân có tên "SYSTEMD_BYPASS_USERDB" có thể được chạy dưới dạng thư mục gốc.
  • Ghi đè service_user được quản lý để chạy mã tùy ý với tư cách là người chủ.
  • Bằng cách ghi đè def_timestampdir, có thể chuyển nội dung của ngăn xếp sudo, bao gồm các biến môi trường, vào tệp / etc / passwd và đạt được sự thay thế người dùng bằng các đặc quyền root.

Các nhà nghiên cứu đã cho thấy rằng khai thác hoạt động để có được các đặc quyền root đầy đủ trên Ubuntu 20.04, Debian 10 và Fedora 33.

Lỗ hổng có thể được khai thác trên các hệ điều hành và bản phân phối khác, nhưng xác minh của các nhà nghiên cứu chỉ giới hạn ở Ubuntu, Debian và Fedora, ngoài ra nó còn được đề cập rằng tất cả các phiên bản sudo 1.8.2 đến 1.8.31p2 và 1.9.0 đến 1.9.5p1 trong cài đặt mặc định đều bị ảnh hưởng. Giải pháp được đề xuất trong sudo 1.9.5p2.

Các nhà nghiên cứu đã thông báo trước cho các nhà phát triển các nhà phân phối đã phát hành các bản cập nhật gói theo cách phối hợp: Debian, RHEL, Fedor, Ubuntu, SUSE / openSUSE, Arch Linux, Slackware, Gentoo và FreeBSD.

Cuối cùng nếu bạn muốn biết thêm về nó về lỗ hổng bảo mật, bạn có thể kiểm tra 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.