Lỗ hổng trong môi trường người dùng khai sáng cho phép truy cập root

Một lỗ hổng (CVE-2022-37706) đã được xác định trong môi trường người dùng Enlightenment cho phép người dùng cục bộ không có đặc quyền thực thi mã bằng quyền root. Lỗ hổng này vẫn chưa được khắc phục (0 ngày), nhưng đã có một bản khai thác có sẵn trên phạm vi công cộng, được thử nghiệm trong Ubuntu 22.04.

Vấn đề nằm ở tệp thực thi Enlighten_sys, đi kèm với cờ gốc suid và thực hiện một số lệnh được phép nhất định, chẳng hạn như gắn ổ đĩa bằng tiện ích mount, thông qua lệnh gọi tới system(). Do hoạt động không chính xác của hàm tạo chuỗi được truyền cho lệnh gọi system(), các trích dẫn sẽ bị cắt khỏi các đối số của lệnh đang được khởi chạy, có thể được sử dụng để chạy mã của riêng bạn. Ví dụ: khi chạy mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" echo "/bin/sh" > /tmp/exploit chmod a+x /tmp/exploit Entertainment_sys /bin/mount - o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), “/dev/../tmp/;/tmp/exploit” /tmp// / mạng lưới

do việc loại bỏ dấu ngoặc kép, thay vì lệnh được chỉ định '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' một chuỗi không có dấu ngoặc kép sẽ là được chuyển tới hàm system() ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', điều này sẽ gây ra lệnh '/tmp/exploit /tmp///net ' được thực thi riêng thay vì được xử lý như một phần của đường dẫn đến thiết bị. Các dòng "/dev/../tmp/" và "/tmp///net" được chọn để bỏ qua việc kiểm tra đối số cho lệnh mount trong Enlighten_sys (thiết bị gắn kết phải bắt đầu bằng /dev/ và trỏ đến tệp hiện có, và ba ký tự "/" tại điểm gắn kết được chỉ định để đạt được kích thước đường dẫn được yêu cầu).

Nguồn: opennet.ru

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