Lỗ hổng SSHole trong OpenSSH cho phép truy cập root trên Alpine Linux chỉ trong vài giờ
Tin tặc đang khai thác CVE-2026-123158 để bỏ qua xác thực trên các tài khoản đã tắt mật khẩu trong OpenSSH chạy trên musl libc, với các cuộc tấn công đang diễn ra được xác nhận trên Alpine Linux.
Được dịch tự động từ bản gốc tiếng Anh.
Các nhóm đe dọa bắt đầu khai thác một lỗ hổng nghiêm trọng trong OpenSSH, được theo dõi dưới mã CVE-2026-123158 và có tên mã là SSHole, chưa đầy chín giờ sau khi lỗ hổng này được công bố. Lỗi này cho phép kẻ tấn công không cần xác thực vẫn có thể truy cập vào các tài khoản được cấu hình mà không có mật khẩu trên một số bản phân phối Linux cụ thể, bao gồm Alpine Linux. Các nhà nghiên cứu bảo mật đã xác nhận việc giành quyền truy cập root thành công trên các honeypot, nhấn mạnh rủi ro tức thì đối với cơ sở hạ tầng phụ thuộc vào các cấu hình mặc định.
Chuyện gì đã xảy ra
Lỗ hổng ảnh hưởng đến các hệ thống Linux chạy OpenSSH trên thư viện C musl với Pluggable Authentication Modules (PAM) bị vô hiệu hóa. Cấu hình này phổ biến ở các bản phân phối nhẹ như Alpine Linux, vốn sử dụng nó theo mặc định. Kẻ tấn công có thể gửi một mật khẩu quá dài, từ 257 đến 1.024 byte, tới một tài khoản không có mật khẩu khả dụng. Thay vì từ chối đăng nhập, hệ thống lại nhầm lẫn xác thực người dùng đó.
Nhà nghiên cứu bảo mật Ozgun Kultekin đã phát hiện ra vấn đề này, xuất phát từ một bản vá được giới thiệu vào năm 2016 để khắc phục một lỗ hổng khác, CVE-2016-6210. Bản sửa lỗi cho việc liệt kê tên người dùng vô tình tạo ra một lỗi logic trong quy trình xử lý mật khẩu. Khi thao tác băm thất bại do dữ liệu đầu vào quá lớn, OpenSSH trả về ký tự dấu sao (*). Daemon sau đó so sánh kết quả này với dấu sao được lưu trong trường mật khẩu của các tài khoản bị vô hiệu hóa, hiểu sự khớp nhau này là một lần đăng nhập thành công.
Công ty tình báo mối đe dọa Previdian đã quan sát thấy nỗ lực khai thác đầu tiên rất nhanh sau khi CVE được công bố. Dữ liệu telemetry xác định tám nỗ lực từ một địa chỉ IP được định vị tại Nhật Bản. Kẻ tấn công đã sử dụng các mật khẩu quá dài để bỏ qua xác thực và thực thi các lệnh thu thập thông tin như id, uname và hostname thông qua các phiên SSH không tương tác. Previdian xác nhận rằng những nỗ lực này đã dẫn đến việc giành quyền truy cập root thành công trên một honeypot chạy Alpine Linux.
Cách thức hoạt động
Cơ chế cốt lõi dựa vào cách OpenSSH xử lý việc xác minh mật khẩu cho các tài khoản bị khóa cố ý hoặc được cấu hình mà không có mật khẩu. Trong những trường hợp này, hệ thống lưu trữ một dấu sao (*) trong trường mật khẩu để chỉ ra rằng đăng nhập bằng mật khẩu đã bị vô hiệu hóa. Thông thường, mọi nỗ lực nhập mật khẩu đều sẽ thất bại. Tuy nhiên, khi kẻ tấn công cung cấp một chuỗi mật khẩu vượt quá kích thước bộ đệm dự kiến, hàm băm nội bộ thất bại một cách an toàn nhưng lại trả về chính ký tự dấu sao đó.
Daemon sshd không phân biệt giữa một lỗi băm hợp lệ và placeholder được lưu trữ. Nó thấy dấu sao được trả về từ thao tác băm thất bại và so khớp nó với dấu sao trong trường mật khẩu của tài khoản. Sự xung đột logic này đánh lừa mô-đun xác thực cấp quyền truy cập. Cuộc khai thác chỉ hoạt động trên các tài khoản mà trường mật khẩu được đặt rõ ràng thành dấu sao. Nó không ảnh hưởng đến các tài khoản có hash mật khẩu hợp lệ hoặc những tài khoản sử dụng PAM cho các kiểm tra xác thực.
Hành vi này đặc thù cho sự tương tác giữa OpenSSH và thư viện C musl. Các hệ thống sử dụng thư viện glibc, Dropbear SSH hoặc các hệ điều hành không phải Linux không bị ảnh hưởng. Ngoài ra, bất kỳ hệ thống nào ủy quyền kiểm tra mật khẩu cho PAM vẫn an toàn vì PAM xử lý logic xác thực theo cách khác, tránh được phép so sánh lỗi trong chính OpenSSH.
Chi tiết chính
- ID Lỗ hổng: CVE-2026-123158 với điểm CVSS là 8.1.
- Hệ thống bị ảnh hưởng: Các hệ thống Linux sử dụng OpenSSH trên musl libc với PAM bị vô hiệu hóa, đáng chú ý là các cấu hình mặc định của Alpine Linux.
- Phương pháp khai thác: Gửi một mật khẩu tùy ý dài từ 257 đến 1.024 byte tới một tài khoản đã tắt mật khẩu.
- Phiên bản vá: Được khắc phục trong OpenSSH 10.6p2.
- Khai thác đang diễn ra: Những nỗ lực đầu tiên được quan sát thấy chưa đầy chín giờ sau khi công bố; quyền truy cập root được xác nhận trên các honeypot.
- Giới hạn: Không ảnh hưởng đến các bản phân phối dựa trên glibc, Dropbear hoặc các hệ thống sử dụng PAM cho xác thực.
Tại sao điều này quan trọng
Đối với các đội ngũ kỹ thuật quản lý cơ sở hạ tầng đám mây, lỗ hổng này làm nổi bật những rủi ro liên quan đến cấu hình mặc định trong môi trường container nhẹ. Alpine Linux được sử dụng rộng rãi trong các container Docker và cụm Kubernetes nhờ kích thước nhỏ gọn. Nếu các instance này mở cổng SSH và dựa vào xác thực chỉ bằng khóa mà không tắt đúng cách các trường mật khẩu hoặc bật PAM, chúng trở nên dễ bị tổn thương trước sự chiếm quyền tức thì. Tốc độ khai thác chứng tỏ rằng các máy quét tự động đã nhắm mục tiêu vào lỗ hổng cụ thể này.
Tác động vượt ra ngoài việc truy cập ban đầu. Như Safe Security đã chỉ ra, một cuộc tấn công thành công sẽ cấp các quyền hạn của tài khoản bị xâm phạm. Nếu mục tiêu là tài khoản root hoặc tài khoản dịch vụ có đặc quyền nâng cao, kẻ tấn công có thể truy cập vào thông tin đăng nhập triển khai, bí mật ứng dụng và cơ sở hạ tầng kết nối. Điều này tạo điều kiện thuận lợi cho việc di chuyển ngang trong mạng, có khả năng dẫn đến gián đoạn dịch vụ diện rộng hoặc rò rỉ dữ liệu. Việc cuộc khai thác không yêu cầu thông tin đăng nhập bị đánh cắp khiến nó đặc biệt nguy hiểm đối với các dịch vụ đang được phơi bày.
Bạn có thể làm gì
- Nâng cấp ngay lập tức lên OpenSSH 10.6p2 hoặc áp dụng gói đã được vá do bản phân phối Linux của bạn cung cấp.
- Khởi động lại dịch vụ sshd sau khi cập nhật để đảm bảo phiên bản mới đang hoạt động.
- Kiểm tra
/var/log/messagesđể tìm các mục đọc "Accepted password for" trên các tài khoản không nên chấp nhận mật khẩu, chẳng hạn như root hoặc alpine. - Xem xét việc sử dụng
doas, các người dùng mới được tạo gần đây, các tệp và khóa được ủy quyền trên bất kỳ máy nào bị phơi bày để tìm dấu hiệu xâm phạm. - Nếu bạn không thể loại trừ khả năng đăng nhập trái phép dựa trên nhật ký, hãy coi máy đó là bị xâm phạm và cô lập nó.
- Cân nhắc bật PAM nếu bản phân phối của bạn hỗ trợ, vì điều này giảm thiểu lỗ hổng bằng cách thay đổi luồng xác thực.



