FreeBSD phát hành bản vá khẩn cấp cho lỗ hổng trên OpenSSH
Các nhà phát triển của FreeBSD vừa qua đã ra thông báo cập nhật bảo mật cho một lỗ hổng đang tồn tại trong OpenSSH. Được xếp loại mức độ nghiêm trọng cao (high-severity), lỗ hổng này có thể được các tin tặc lợi dụng để thực hiện các cuộc tấn công leo thang đặc quyền và thực thi mã từ xa.
1. Thông tin lỗ hổng
Định danh lỗ hổng: CVE-2024-7589
Điểm CVSS(3.1): 8.1
Mức độ nghiêm trọng: High
Mô tả: Trong bối cảnh tín hiệu bất đồng bộ, một
signal handler
(bộ xử lý tín hiệu) trongsshd(8)
khi gọi một hàmlogging function
(hàm ghi nhật ký) không an toàn. Do bộ xử lý này chạy trong môi trường mã đặc quyềnsshd(8)
không được bảo vệ bởi cơ chế sandbox và khởi chạy với quyềnroot
không đầy đủ, kẻ tấn công có thể khai thác để thực thi mã từ xa với quyền root mà không cần xác thực.Các phiên bản bị ảnh hưởng: Tất cả các phiên bản được hỗ trợ của FreeBSD.
Phiên bản bị ảnh hưởng |
stable/14, 14.1-STABLE |
releng/14.1, 14.1-RELEASE-p3 |
releng/14.0, 14.0-RELEASE-p9 |
stable/13, 13.3-STABLE |
releng/13.3, 13.3-RELEASE-p5 |
OpenSSH là một chương trình mã nguồn mở được phát triển và triển khai dựa trên giao thức SSH, cung cấp phương thức truyền dữ liệu được mã hoá và xác thực cho nhiều dịch vụ khác nhau, bao gồm truy cập shell từ xa.
Trong thông báo cập nhật bảo mật từ các nhà vận hành và phát triển FreeBSD, một signal handler
(bộ xử lý tín hiệu) trong sshd(8)
có thể gọi một hàm logging function
(hàm ghi nhật ký) được các nhà phát triển này gọi là "not async-signal-safe" (mất an toàn cho tín hiệu không đồng bộ). Bộ xử lý tín hiệu này chạy trong môi trường mã đặc quyền của sshd(8)
, không được bảo vệ bởi cơ chế sandbox, có thể khởi chạy với quyền root
không đầy đủ và xuất hiện khi phía client không thoả mãn thời gian xác thực LoginGraceTime
- mặc định là 120 giây.
Lỗi này liên quan đến vấn đề từng được nhắc tới trong CVE-2024-6387 và đã được giải quyết trong bản cập nhật bảo mật FreeBSD-SA-24:04.openssh
. CVE-2024-7589 tồn tại do lỗi xuất phát từ việc tích hợp blacklistd vào OpenSSH trên FreeBSD.
Hệ quả từ việc gọi hàm ghi nhật ký khi tín hiệu không đồng bộ tạo điều kiện tồn tại "race condition", cho phép tin tặc bỏ qua xác thực và thực thi mã từ xa với quyền root
.
2. Khắc phục & Khuyến nghị
Với trường hợp sshd(8)
không thể được cập nhật, có thể khắc phục bằng cách thay đổi giá trị LoginGraceTime
trong /etc/ssh/sshd_config
về giá trị 0 và khởi động lại sshd(8)
. Việc này có thể khiến sshd(8)
phòng tránh nguy cơ bị tấn công thực thi mã từ xa, tuy nhiên nguy cơ đối mặt với cuộc tấn công từ chối dịch vụ là rất cao do tất cả các kết nối MaxStartups
đều bị cạn kiệt.
Các hệ thống đang chạy phiên bản FreeBSD trên nền tảng amd64
, arm64
hoặc i386
có thể thực hiện cập nhật tự động thông qua công cụ freebsd-update(8)
:
# freebsd-update fetch
# freebsd-update install
hoặc thực hiện cài đặt thủ công bằng cách:
# fetch https://security.FreeBSD.org/patches/SA-24:08/openssh.patch
# fetch https://security.FreeBSD.org/patches/SA-24:08/openssh.patch.asc
# gpg --verify openssh.patch.asc
# cd /usr/src
# patch < /path/to/patch
3. Tham khảo
Subscribe to my newsletter
Read articles from Nam Anh Mai D. directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by