Lỗ hổng trong systemd có khả năng cho phép bạn nâng cao đặc quyền của mình

Trong trình quản lý hệ thống systemd xác định tính dễ bị tổn thương (CVE-2020-1712), có khả năng cho phép bạn thực thi mã của mình với các đặc quyền nâng cao bằng cách gửi yêu cầu được thiết kế đặc biệt qua bus DBus. Sự cố đã được khắc phục trong bản phát hành thử nghiệm hệ thống 245-rc1 (các bản vá giải quyết vấn đề: 1, 2, 3). Lỗ hổng đã được sửa trong các bản phân phối Ubuntu, Fedora, RHEL (xuất hiện trong RHEL 8, nhưng không ảnh hưởng đến RHEL 7), CentOS и SUSE/openSUSE, nhưng tại thời điểm viết tin tức vẫn chưa được chỉnh sửa trong Debian и Arch Linux.

Уязвимость вызвана обращением к уже освобождённой области памяти (use-after-free), возникающем при асинхронном выполнении запросов к Polkit во время обработки DBus-сообщений. Некоторые DBus-интерфейсы используют кэш для хранения объектов на короткое время и очищают элементы кэша как только шина DBus освободится для обработки других запросов. Если обработчик DBus-метода использует bus_verify_polkit_async(), ему возможно потребуется ожидать завершения действия в Polkit. После готовности Polkit обработчик вызывается повторно и обращается к уже ранее распределённым в памяти данным. Если запрос к Polkit выполняется слишком долго, то элементы в кэше успевают очистится до того, как обработчик DBus-метода будет вызван второй раз.

Trong số các dịch vụ cho phép khai thác lỗ hổng, đáng chú ý là systemd-machined, cung cấp API DBus org.freedesktop.machine1.Image.Clone, dẫn đến việc lưu trữ dữ liệu tạm thời trong bộ đệm và truy cập không đồng bộ vào Polkit. Giao diện
org.freedesktop.machine1.Image.Clone có sẵn cho tất cả người dùng không có đặc quyền của hệ thống, điều này có thể làm hỏng các dịch vụ systemd hoặc có khả năng khiến mã được thực thi dưới quyền root (nguyên mẫu khai thác vẫn chưa được chứng minh). Mã cho phép khai thác lỗ hổng là thêm trong systemd-machined trong phiên bản 2015 systemd 220 (RHEL 7.x sử dụng systemd 219).

Nguồn: opennet.ru

Thêm một lời nhận xét