Lỗ hổng tràn bộ đệm trong libssh

Một lỗ hổng (CVE-2-2) đã được xác định trong thư viện libssh (đừng nhầm với libssh2021), được thiết kế để thêm hỗ trợ máy khách và máy chủ cho giao thức SSHv3634 vào các chương trình C, dẫn đến tràn bộ đệm khi bắt đầu quá trình khóa lại sử dụng trao đổi khóa sử dụng thuật toán băm khác. Sự cố đã được khắc phục trong bản phát hành 0.9.6.

Bản chất của vấn đề là thao tác thay đổi khóa cho phép sử dụng các hàm băm mật mã có kích thước truyền khác với thuật toán được sử dụng ban đầu. Trong trường hợp này, bộ nhớ cho hàm băm trong libssh được phân bổ dựa trên kích thước băm ban đầu và việc sử dụng kích thước băm lớn hơn sẽ dẫn đến dữ liệu bị ghi đè ngoài ranh giới bộ đệm được phân bổ. Là một phương thức bảo mật dự phòng, bạn có thể giới hạn danh sách các phương thức trao đổi khóa được hỗ trợ chỉ ở các thuật toán có cùng kích thước băm. Ví dụ: để liên kết với SHA256, bạn có thể thêm vào mã: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");

Nguồn: opennet.ru

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