Công nghệ & cuộc sống sốRSS
thinnguyenBlog
Kỹ thuật··6 phút đọc

OpenSSH 10.6p2 vá lỗ hổng sshhole cho phép đăng nhập Alpine Linux bằng mật khẩu dài

OpenSSH vừa phát hành bản khẩn 10.6p2 vào ngày 5/11/2026 để vá lỗ hổng sshhole, cho phép kẻ tấn công đăng nhập vào máy chủ Alpine Linux bằng một mật khẩu dài dù tài khoản đã bị khóa đăng nhập bằng mật khẩu. Lỗ hổng được chấm 8.1 điểm CVSS, ở mức High.

OpenSSH 10.6p2 vá lỗ hổng sshhole cho phép đăng nhập Alpine Linux bằng mật khẩu dài

OpenSSH đã phát hành bản vá khẩn cấp 10.6p2 vào ngày 5/11/2026 để khắc phục lỗ hổng bỏ qua xác thực mật khẩu trong sshd, được đặt biệt danh là “sshole”. Lỗ hổng mang mã CVE-2026-123158, được chấm 8.1 điểm theo thang CVSS 3.1, tương đương mức High theo đánh giá của MITRE. OpenSSH chỉ mất một ngày để phát hành bản vá sau khi nhận được báo cáo, và người duy trì dự án đã kêu gọi quản trị viên hành động ngay.

Lỗ hổng này biến những tài khoản vốn được coi là an toàn — các tài khoản đã bị khóa đăng nhập bằng mật khẩu — thành cửa ngõ xâm nhập máy chủ. Điều kiện khai thác khá hẹp, chỉ xảy ra trên Linux dùng thư viện C musl và không dùng PAM, mà Alpine Linux là nền tảng phổ biến nhất trong nhóm này.

Lỗ hổng sshhole là gì và vì sao nguy hiểm

Lỗ hổng sshhole do nhà nghiên cứu Özgün Kültekin (Wakefield) phát hiện và báo cáo cho OpenSSH vào ngày 4/11/2026. Chỉ một ngày sau, OpenSSH đã phát hành bản 10.6p2 để vá lỗi.

Về bản chất, sshhole là lỗi bỏ qua xác thực mật khẩu trong sshd, chương trình máy chủ của OpenSSH. Kẻ tấn công chỉ cần biết tên một tài khoản là có thể đăng nhập bằng bất kỳ mật khẩu dài nào, dù tài khoản đó đã được cấu hình để không cho phép đăng nhập bằng mật khẩu. Lỗ hổng phá vỡ một giả định bảo mật cơ bản: tài khoản không có mật khẩu hợp lệ thì không thể đăng nhập bằng mật khẩu.

Người duy trì OpenSSH, Damien Miller, kêu gọi quản trị viên đặt PasswordAuthentication=no hoặc tắt SSH ngay lập tức nếu chưa vá được. Tính đến ngày 6/11/2026, chưa có báo cáo khai thác thực tế nào ngoài đời. CISA ghi nhận trạng thái khai thác là proof-of-concept, tức mã khai thác thử nghiệm đã công khai, nhưng lỗ hổng chưa nằm trong danh mục Known Exploited Vulnerabilities của CISA.

Cơ chế khai thác: mật khẩu dài 257 đến 1.024 byte

Lỗ hổng sshhole chỉ xảy ra khi sshd chạy trên Linux dùng thư viện C musl và không dùng PAM. Đây chính là cách Alpine Linux đóng gói openssh-server theo mặc định, nên Alpine Linux trở thành nền tảng phơi nhiễm rộng nhất.

Mục tiêu là những tài khoản có trường mật khẩu là dấu sao duy nhất trong tệp /etc/shadow, nghĩa là không cho phép đăng nhập bằng mật khẩu, ví dụ tài khoản chỉ dùng khóa SSH hoặc tài khoản dịch vụ. Bình thường, không mật khẩu nào khớp được với trường dấu sao này. Tuy nhiên, khi kẻ tấn công gửi một mật khẩu dài từ 257 đến 1.024 byte, quá trình kiểm tra lại cho kết quả khớp một cách sai lầm.

Cách khai thác khá đơn giản: kẻ tấn công gửi một mật khẩu sai trước, rồi gửi tiếp một mật khẩu dài khoảng 300 ký tự trong cùng một kết nối SSH. Mật khẩu dài này sẽ được chấp nhận dù hoàn toàn không phải mật khẩu thật. Đây là lỗi logic, không phải lỗi tràn bộ nhớ. Gốc rễ nằm ở sự tương tác giữa sshd và hàm crypt() của thư viện musl. OpenSSH cho biết nguyên nhân gốc nằm ngoài sshd, nhưng đã thêm biện pháp khắc phục trực tiếp trong sshd.

Ai bị ảnh hưởng và ai an toàn

Alpine Linux chịu ảnh hưởng lớn nhất vì dùng musl làm thư viện C mặc định và gói openssh-server của nó không dùng PAM. Phạm vi phơi nhiễm còn bao gồm nhiều image Docker chạy sshd trên nền Alpine. Do Alpine Linux rất phổ biến làm image nền cho container nhờ kích thước nhỏ gọn, số hệ thống có thể bị ảnh hưởng là không nhỏ.

Các nền tảng dùng musl khác như OpenWrt, Buildroot và Yocto cũng có thể nằm trong diện nguy cơ, nhưng tính đến ngày 6/11/2026 chưa công bố trạng thái vá. Quản trị viên dùng các hệ thống này cần tự kiểm tra với nhà phát hành thay vì cho rằng mình an toàn.

Ngược lại, các bản phân phối dùng glibc như Debian, Ubuntu, Fedora và Red Hat Enterprise Linux không bị ảnh hưởng. Mọi hệ thống cấu hình sshd kiểm tra mật khẩu qua PAM cũng không bị ảnh hưởng, bất kể thư viện C bên dưới là gì. Nhờ đó, quản trị viên có thể nhanh chóng xác định hệ thống của mình có nằm trong diện nguy cơ hay không.

Bản vá OpenSSH 10.6p2 và cách cập nhật trên Alpine Linux

Bản vá OpenSSH 10.6p2 khiến sshd từ chối khớp khi trường mật khẩu đã lưu ngắn hơn 4 ký tự. Vì trường mật khẩu của các tài khoản bị khóa chỉ là một dấu sao duy nhất, biện pháp này chặn đúng trường hợp khai thác mà không ảnh hưởng đến đăng nhập bình thường bằng mật khẩu thật.

Alpine Linux đã phát hành gói vá cùng ngày 5/11/2026 cho mọi nhánh, từ 3.16 đến edge, bao gồm cả các nhánh đã hết hỗ trợ. Cụ thể, nhánh edge nhận gói 10.6_p2-r0, nhánh 3.24 nhận 10.3_p1-r2, nhánh 3.23 nhận 10.2_p1-r1, nhánh 3.22 nhận 10.0_p1-r11 và nhánh 3.21 nhận 9.9_p2-r1. Việc vá cả các nhánh đã hết hỗ trợ cho thấy mức độ nghiêm trọng của lỗ hổng.

Cách vá trên Alpine Linux gồm hai bước: chạy lệnh apk upgrade để cài gói openssh-server mới, rồi khởi động lại sshd bằng lệnh rc-service sshd restart. Cần lưu ý việc cài gói mới không tự động khởi động lại sshd đang chạy. Nếu chỉ cập nhật gói mà quên khởi động lại dịch vụ, tiến trình sshd cũ vẫn chạy với mã dễ bị tấn công và máy chủ vẫn phơi nhiễm.

Quản trị viên cần làm gì ngay

Nếu đang chạy Alpine Linux với sshd mở ra mạng, việc đầu tiên là cập nhật openssh-server lên bản vá tương ứng với nhánh đang dùng, sau đó khởi động lại sshd. Trong lúc chờ vá, có thể đặt PasswordAuthentication=no trong cấu hình sshd hoặc tắt SSH nếu dịch vụ này không thực sự cần thiết.

Với các hệ thống dùng musl khác như OpenWrt, Buildroot hay Yocto, quản trị viên nên theo dõi thông báo từ nhà phát hành và chuẩn bị sẵn phương án tắt xác thực mật khẩu. Với hệ thống dùng glibc hoặc dùng PAM, vẫn nên cập nhật OpenSSH lên bản mới nhất theo lịch bảo trì thường kỳ.

Lỗ hổng sshhole nhắc rằng những giả định bảo mật tưởng chừng hiển nhiên, như tài khoản không có mật khẩu thì không thể đăng nhập bằng mật khẩu, vẫn có thể bị phá vỡ bởi một lỗi logic nằm sâu trong sự tương tác giữa các thành phần hệ thống. OpenSSH và Alpine Linux đã vá nhanh trong một ngày, nhưng phần còn lại thuộc về quản trị viên: cập nhật gói, khởi động lại dịch vụ và kiểm tra lại.

Nguồn tham khảo: OpenSSH

Bài liên quan