Tiến trình xây dựng lỗ hổng cho OpenSSH 9.1

Qualys đã tìm ra cách vượt qua cơ chế bảo vệ malloc và double-free để bắt đầu chuyển quyền kiểm soát sang mã bằng cách sử dụng một lỗ hổng trong OpenSSH 9.1 được xác định là có nguy cơ thấp tạo ra một lỗ hổng khai thác đang hoạt động. Đồng thời, khả năng tạo ra một khai thác có hiệu quả vẫn là một câu hỏi lớn.

Lỗ hổng này xảy ra do xác thực trước miễn phí gấp đôi. Để tạo điều kiện cho lỗ hổng xuất hiện, chỉ cần thay đổi biểu ngữ máy khách SSH thành “SSH-2.0-FuTTYSH_9.1p1” (hoặc một máy khách SSH cũ khác) để đặt cờ “SSH_BUG_CURVE25519PAD” và “SSH_OLD_DHGEX”. Sau khi thiết lập các cờ này, bộ nhớ dành cho bộ đệm “options.kex_algorithms” sẽ được giải phóng hai lần.

Các nhà nghiên cứu từ Qualys, trong khi xử lý lỗ hổng, đã có thể giành quyền kiểm soát thanh ghi bộ xử lý “%rip”, chứa con trỏ tới lệnh tiếp theo sẽ được thực thi. Kỹ thuật khai thác được phát triển cho phép bạn chuyển quyền kiểm soát đến bất kỳ điểm nào trong không gian địa chỉ của quy trình sshd trong môi trường OpenBSD 7.2 chưa cập nhật, được cung cấp theo mặc định với OpenSSH 9.1.

Cần lưu ý rằng nguyên mẫu được đề xuất chỉ là triển khai giai đoạn đầu tiên của cuộc tấn công - để tạo ra một khai thác hoạt động, cần phải vượt qua các cơ chế bảo vệ ASLR, NX và ROP cũng như thoát khỏi sự cô lập hộp cát, điều này khó xảy ra. Để giải quyết vấn đề vượt qua ASLR, NX và ROP, cần phải lấy thông tin về địa chỉ, điều này có thể đạt được bằng cách xác định một lỗ hổng khác dẫn đến rò rỉ thông tin. Một lỗi trong tiến trình gốc hoặc kernel có đặc quyền có thể giúp thoát khỏi hộp cát.

Nguồn: opennet.ru

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