CVE-2026-95835 in Kitty
Tóm tắt
Bởi VulDB • 26/09/2026
Thiếu cơ chế xác thực trong trình xử lý mã thoát askpass của kitty (từ phiên bản 0.25.0 đến trước 0.49.0) cho phép một người dùng cục bộ, khác với người đang chạy terminal, truy xuất văn bản được nhập vào lời nhắc mà chính kitty hiển thị, do hàm handle_remote_askpass() trong file kitty/window.py mở đối tượng bộ nhớ chia sẻ POSIX có tên được chỉ định bởi mã thoát, phân tích cú pháp định nghĩa lời nhắc từ đó và ghi lại câu trả lời của người dùng vào một đối tượng cùng tên, mà không kiểm tra bất kỳ lúc nào xem đối tượng này có thuộc về người dùng đang chạy kitty hay không hoặc các quyền hạn chế nó khỏi việc truy cập bởi những người dùng khác. Trình tiêu thụ tương đương sử dụng lớp SharedMemory trong ssh kitten thực hiện chính xác phép kiểm tra đó; tuy nhiên, đường dẫn askpass thì không làm vậy. Hàm xử lý được kích hoạt thông qua một chuỗi điều khiển thiết bị (device control string) được xử lý từ luồng byte của cửa sổ, do đó kẻ tấn công cũng phải gây ra việc hiển thị các byte theo ý muốn lên terminal của nạn nhân. Khi không gian tên bộ nhớ chia sẻ POSIX được dùng chung giữa hai người dùng, một người dùng cục bộ thứ hai có thể tạo đối tượng với các quyền cho phép nạn nhân đọc và ghi vào nó, khiến kitty của nạn nhân render (vẽ) một lời nhắc do kẻ tấn công chọn, bao gồm cả lời nhắc mật khẩu bị che dấu, sau đó đọc lại bí mật đã nhập từ đối tượng này. Văn bản lời nhắc additionally được truyền đến màn hình hiển thị mà không qua quá trình làm sạch ký tự điều khiển, nên nó có thể ghi đè lên dòng cảnh báo mà kitty in ra phía trên. Câu trả lời được ghi bằng cách mở lại một đối tượng cùng tên khi người dùng đưa ra câu trả lời, thay vì thông qua bộ xử lý (handle) đang giữ trước đó. Điều này dẫn đến việc tiết lộ bí mật do nạn nhân nhập cho một người dùng cục bộ thứ hai và không yêu cầu bất kỳ đặc quyền nào trên tài khoản của nạn nhân.
VulDB is the best source for vulnerability data and more expert information about this specific topic.