Lỗ hổng OpenSSH trên Alpine Linux cho phép vượt qua xác thực mật khẩu
Một lỗ hổng nghiêm trọng trong OpenSSH trên Alpine Linux cho phép kẻ tấn công vượt qua xác thực mật khẩu bằng cách sử dụng các chuỗi ký tự đặc biệt, đe dọa trực tiếp đến các hệ thống không sử dụng PAM.

- Bản chất lỗ hổng: Lỗi logic trong quá trình xử lý mật khẩu giữa OpenSSH và thư viện musl libc cho phép vượt qua xác thực.
- Điều kiện khai thác: Hệ thống sử dụng Alpine Linux không cấu hình PAM, tài khoản mục tiêu có mật khẩu trống (*) và kẻ tấn công biết tên tài khoản.
- Giải pháp khắc phục: Cập nhật ngay lập tức lên các phiên bản OpenSSH đã vá lỗi hoặc vô hiệu hóa xác thực mật khẩu (PasswordAuthentication no).
Các nhà nghiên cứu bảo mật vừa công bố một lỗ hổng nghiêm trọng trong OpenSSH, có khả năng cho phép kẻ tấn công từ xa vượt qua cơ chế xác thực mật khẩu trên các máy chủ Alpine Linux. Lỗ hổng này đặc biệt nguy hiểm đối với các tài khoản vốn chỉ được thiết kế để truy cập bằng khóa (key-only access) nhưng lại bị cấu hình sai lệch.

Theo báo cáo từ chuyên gia Özgün Kültekin, vấn đề nằm ở sự tương tác không mong muốn giữa OpenSSH và hàm crypt() của thư viện musl libc. Khi một mật khẩu có độ dài bất thường (từ 257 đến 1024 byte) được gửi đến, nó có thể biến một lần kiểm tra mật khẩu thất bại thành một lần đăng nhập thành công. Điều này xảy ra do cơ chế xử lý lỗi của musl trả về ký tự * khi gặp mật khẩu quá dài, vô tình khớp với giá trị * được lưu trữ trong trường mật khẩu của các tài khoản chưa được thiết lập mật khẩu.
Phân tích kỹ thuật chuyên sâu
Lỗ hổng này không liên quan đến các vấn đề mã hóa mà tập trung vào logic xác thực. Trên các hệ thống Alpine Linux không sử dụng PAM (Pluggable Authentication Modules), sshd sẽ thực hiện băm mật khẩu được cung cấp và so sánh với giá trị lưu trữ. Nếu tài khoản có trường mật khẩu là *, sshd sẽ mượn salt của một tài khoản khác để thực hiện so sánh.

Khi mật khẩu đầu vào vượt quá 256 byte, mã băm của musl từ chối xử lý và trả về * như một dấu hiệu lỗi. Vì giá trị này trùng khớp với giá trị lưu trữ của tài khoản mục tiêu, hệ thống sẽ xác nhận đăng nhập thành công thay vì từ chối. Kẻ tấn công chỉ cần gửi một chuỗi ký tự (ví dụ: 300 ký tự 'A') để kích hoạt lỗi này.
Các thành phần bị ảnh hưởng
Không phải mọi hệ thống Alpine Linux đều bị ảnh hưởng. Dưới đây là bảng tổng hợp các yếu tố rủi ro:
| Yếu tố | Trạng thái | Mô tả tác động |
|---|---|---|
| Hệ thống dùng PAM | Không bị ảnh hưởng | Sử dụng openssh-server-pam với UsePAM yes là an toàn. |
| Alpine Container | Không bị ảnh hưởng | Chỉ bị ảnh hưởng nếu chạy dịch vụ SSH bên trong container. |
| Phiên bản Alpine | 3.18.11 - 3.24.3 | Các phiên bản này chứa tài khoản mặc định dễ bị khai thác. |
Hướng dẫn phòng thủ và khắc phục
Để bảo vệ hệ thống trước nguy cơ này, quản trị viên cần thực hiện các bước kiểm tra và cập nhật ngay lập tức. Việc chỉ cập nhật gói phần mềm là chưa đủ, cần phải khởi động lại dịch vụ để áp dụng thay đổi.
- Cập nhật hệ thống: Chạy lệnh
apk upgrade -U -ađể nâng cấp toàn bộ gói, sau đó thực hiệnrc-service sshd restart. - Cấu hình tạm thời: Nếu chưa thể cập nhật, hãy sửa file cấu hình SSH (thường tại
/etc/ssh/sshd_config) và thiết lậpPasswordAuthentication no. - Giám sát log: Kiểm tra file
/var/log/messagesđể tìm kiếm các dòngAccepted password forliên quan đến các tài khoản không có mật khẩu.
Các phiên bản đã được vá lỗi bao gồm 3.21.10, 3.22.8, 3.23.8 và 3.24.4. Quản trị viên nên tham khảo thêm thông tin chi tiết từ CISA hoặc các tài liệu hướng dẫn bảo mật chính thức của Alpine Linux để đảm bảo cấu hình hệ thống đạt chuẩn an toàn cao nhất.
Mạng Lưới An Ninh Mạng & Cộng Đồng
Nhận cảnh báo 0-Day khẩn cấp, phân tích mã độc và tham gia thảo luận kỹ thuật cùng chuyên gia.
Ban biên tập nội dung và phân tích an ninh mạng tại ADSECVN.COM.



