Có mã định danh là CVE-2023-32784, lỗ hổng này cho phép mật khẩu chính bị xóa khỏi bộ nhớ, ngay cả khi vùng nhớ bị khóa hoặc ứng dụng không còn chạy nữa.

CVE-2023-32784

Chi tiết về CVE-2023-32784

Lỗ hổng phổ biến trong các phiên bản Keepass từ 2.x đến trước 2.54, cho phép kẻ rấn công khôi phục mật khẩu chính dạng clear text. Đây có thể là kết xuất quy trình KeePass, tệp hoán đổi hoặc thậm chí là kết xuất RAM của toàn bộ hệ thống. Dù vậy, ký tự đầu tiên của mật khẩu vẫn không thể khôi phục được.

Việc khai thác xoay quanh việc tạo ra một chuỗi còn sót lại trong bộ nhớ cho mỗi ký tự được nhập vào textbox này. Với sự phức tạp của .NET, gần như không thể loại bỏ các chuỗi này một khi chúng được tạo. Ví dụ: nhập mật khẩu “Mật khẩu” sẽ dẫn đến việc tạo các chuỗi còn sót lại sau: •a, •••s, •••••••• PoC tìm kiếm kết xuất bộ nhớ cho các mẫu này và đề xuất một ký tự mật khẩu có thể xảy ra cho từng vị trí.

Độ tin cậy của khai thác có thể thay đổi tùy thuộc vào cách nhập mật khẩu và số lượng mật khẩu được nhập mỗi phiên. Tuy nhiên, vdohney phát hiện ra rằng ngay cả khi nhiều mật khẩu được nhập mỗi phiên hoặc lỗi chính tả được thực hiện, thứ tự của các chuỗi này trong bộ nhớ bởi .NET CLR có khả năng cho phép khôi phục tất cả các mật khẩu.

Mặc dù lỗ hổng đã được khắc phục trong KeePass 2.54 thông qua việc sử dụng API khác nhau hoặc chèn chuỗi ngẫu nhiên, sự tồn tại của một lỗ hổng như vậy cho thấy cần phải cảnh giác liên tục và cập nhật thường xuyên. Ngay cả khi chúng ta giao phó các mật khẩu cho trình quản lý mật khẩu, chúng ta không được quên rằng không có gì là bất khả xâm phạm.

Theo Security Online