Một lỗi chưa được phát hiện từ 7 năm trước cho phép leo thang đặc quyền với polkit

Nhà sau Kevin (một nhà nghiên cứu bảo mật) chia sẻ một vài ngày trước trên blog GitHub, lưu ý rằng đã gặp lỗi trong dịch vụ polkit được liên kết với systemd (một thành phần quản lý dịch vụ và hệ thống Linux phổ biến), với lỗ hổng XNUMX năm tuổi mà được phép thực hiện leo thang các đặc quyền đã được ẩn giấu trong các bản phân phối Linux khác nhau và đã được vá vào tuần trước trong một bản phát hành phối hợp.

Polkit là một bộ công cụ cấp ứng dụng để xác định và quản lý chính sách điều đó cho phép quy trình không đặc quyền Nói chuyện với các quy trình đặc quyền, nó cài đặt theo mặc định trên các bản phân phối Linux khác nhau. Lỗ hổng bảo mật đã được giới thiệu trong phiên bản 0.113 cách đây 5036 năm (commit bfa3) và đã được sửa vào ngày XNUMX tháng XNUMX sau khi nhà nghiên cứu bảo mật Kevin Backhouse tiết lộ gần đây.

Là thành viên của Phòng thí nghiệm bảo mật GitHub, công việc của tôi là giúp cải thiện tính bảo mật của phần mềm nguồn mở bằng cách tìm và báo cáo các lỗ hổng. Một vài tuần trước, tôi đã tìm thấy một lỗ hổng leo thang đặc quyền trong polkit. Phối hợp tiết lộ lỗ hổng bảo mật với các nhà bảo trì polkit và nhóm bảo mật của Red Hat. Nó đã được công khai, bản sửa lỗi được phát hành vào ngày 3 tháng 2021 năm 2021 và được chỉ định CVE-3560-XNUMX

Backhouse nói: “Mọi hệ thống Linux sử dụng phiên bản polkit dễ bị tấn công đều có khả năng bị tấn công khai thác lỗ hổng CVE-2021-3560. cho biết lỗ hổng này dễ khai thác một cách đáng ngạc nhiên, vì nó chỉ yêu cầu một số lệnh sử dụng các công cụ đầu cuối tiêu chuẩn như bash, kill và dbus-send.

Backhouse giải thích: “Lỗ hổng được kích hoạt bằng cách bắt đầu lệnh dbus-send, nhưng sẽ giết nó trong khi polkit vẫn đang xử lý yêu cầu.

Nhà sau đã đăng một video PoC của một cuộc tấn công khai thác lỗ hổng này cho thấy nó rất dễ kích hoạt.

“Lỗ hổng cho phép người dùng cục bộ không có đặc quyền lấy được root shell trên hệ thống. Thật dễ dàng để khai thác với một số công cụ dòng lệnh tiêu chuẩn, như bạn có thể thấy trong video ngắn này, 'chuyên gia viết trong một bài đăng trên blog.

Khi giết dbus-send (lệnh giao tiếp giữa các tiến trình), ở giữa một yêu cầu xác thực gây ra lỗi Điều này xuất phát từ việc polkit yêu cầu UID của một kết nối không còn tồn tại (vì kết nối đã bị ngắt).

"Thật vậy, polkit đã xử lý sai lỗi theo một cách đặc biệt đáng tiếc: thay vì từ chối yêu cầu, nó xử lý nó như thể nó đến từ một quy trình với UID 0", Backhouse giải thích. "Nói cách khác, bạn ngay lập tức cho phép yêu cầu vì bạn nghĩ rằng yêu cầu đến từ một quy trình gốc."

Điều này không xảy ra mọi lúc, vì truy vấn UID của polkit tới dbus-daemon xảy ra nhiều lần trên các đường dẫn mã khác nhau. Backhouse cho biết, thông thường những đường dẫn mã đó sẽ xử lý lỗi một cách chính xác, nhưng một đường dẫn mã rất dễ bị tấn công và nếu việc ngắt kết nối xảy ra khi đường dẫn mã đó đang hoạt động, thì việc nâng đặc quyền sẽ xảy ra. Tất cả chỉ là vấn đề thời gian, thay đổi theo những cách không thể đoán trước bởi vì nhiều quá trình có liên quan.

Bên cạnh đó, nhà nghiên cứu đã công bố bảng sau chứa danh sách các bản phân phối hiện có lỗ hổng bảo mật:

PHÂN PHỐI BẤT NGỜ?
RHEL 7 Không
RHEL 8 vâng
Fedora 20 (hoặc sớm hơn) Không
Fedora 21 (trở lên) vâng
Debian 10 ("buster") Không
Thử nghiệm Debian vâng
Ubuntu 18.04 Không
Ubuntu 20.04 vâng

Các bản phân phối Linux đã cài đặt polkit phiên bản 0.113 trở lên, chẳng hạn như Debian (nhánh không ổn định), RHEL 8, Fedora 21 trở lên và Ubuntu 20.04, đều bị ảnh hưởng.

Backhouse phỏng đoán bản chất không liên tục của lỗi là lý do khiến nó không bị phát hiện trong bảy năm.

Backhouse cho biết: “CVE-2021-3560 cho phép kẻ tấn công cục bộ không có đặc quyền có được đặc quyền root. "Nó rất đơn giản và nhanh chóng để khai thác, vì vậy điều quan trọng là bạn phải cập nhật các bản cài đặt Linux của mình càng sớm càng tốt."

Cuối cùng Nếu bạn 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: AB Internet Networks 2008 SL
  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.