OpenSSH 專案於 2026 年 11 月 5 日發布 Portable OpenSSH 10.6p2,處理一個可經 sshd 觸發的密碼認證繞過問題,影響使用 musl libc 且關閉 PAM 支援的 Linux 系統,Alpine Linux 是當中最主要的受影響發行版。官方將此版本定性為關鍵安全修補,Alpine 亦同步發出安全公告,要求用戶更新套件後必須重新啟動 sshd。截至公告發出時,仍未獲分配 CVE 編號[1][2]。
漏洞成因與觸發條件
問題出在 sshd 在沒有 PAM 的情況下核對密碼的方式。sshd 會用 crypt() 將用戶提交的密碼雜湊,再與 /etc/shadow 內儲存的密碼欄位比對;若某個帳戶的密碼欄位太短、不足以包含 salt,sshd 會借用另一個帳戶的 salt 來計算。
musl 的 crypt() 在密碼長度超過 256 字元時,會回傳一個星號作為錯誤標記。這個字元恰好等於「沒有設定密碼」帳戶在密碼欄位中的內容,於是雜湊結果「相符」,登入就被接納。攻擊者只需要知道一個密碼欄位為星號的帳戶名稱,再向 SSH 埠送出 257 至 1024 位元組的超長密碼,一次連線即可完成,不需要重試[2]。
OpenSSH 在公告中指出,根本原因其實在 sshd 之外,但由於可以經 sshd 觸發,因此選擇在 sshd 層面攔截[1]。漏洞由 Wakefield 的 Özgün Kültekin 報告。
影響範圍
Alpine 的安全公告列出三項同時成立的條件:執行以 musl 建構、關閉 PAM 的 openssh-server(或使用 openssh-server-pam 但設定 UsePAM no);PasswordAuthentication 維持預設的 yes;機器上存在密碼欄位為星號的帳戶,並且至少有一個帳戶使用 $5$ 或 $6$ 雜湊。
換言之,只要機器上有一個真正設定密碼的帳戶,其他所有「只准用密鑰」的帳戶都會同時變得可以無密碼登入。root 在 Alpine 基底映像中自大約 3.16 起,密碼欄位就是星號,雖然 OpenSSH 預設的 PermitRootLogin prohibit-password 會擋住直接登入,但若其他可登入帳戶能透過 doas 提權,風險依然存在。以目錄服務(musl-nscd、nslcd、winbind、sssd)管理的用戶因為沒有 shadow 記錄,亦屬於高危一群[2]。
Alpine 檢查過的 3.16 至 3.24 及 edge 全部受影響。官方 tiny-cloud 映像由 3.18.11 至 3.24.3 內建一個密碼欄位為星號、可使用無密碼 doas 的 alpine 用戶,首次開機時安全,但一旦機器上出現任何 $6$ 雜湊(例如管理員設定了主機密碼),就會變成可被利用。沒有在容器內執行 sshd 的 Docker 用戶、已設 PasswordAuthentication no 的系統、使用 openssh-server-pam 並開啟 UsePAM 的系統,以及密碼欄位為 ! 的鎖定帳戶,均不受影響[2]。
修補與升級步驟
Alpine 已將修補回溯到多條穩定分支,修復版本包括 edge 的 10.6_p2-r0、3.24 的 10.3_p1-r2、3.23 的 10.2_p1-r1、3.22 的 10.0_p1-r11、3.21 的 9.9_p2-r1,更舊的 3.16 至 3.20 亦有對應套件。這些修補隨 Alpine 3.21.10、3.22.8、3.23.8 及 3.24.4 一併發布[2]。
升級指令為 apk upgrade -U -a,但關鍵在於更新套件不會取代正在執行的程序,必須再執行 rc-service sshd restart 才會載入新版本。這一點在雲端環境尤其容易漏做。
未能即時更新的緩解措施
若短期內無法升級,可先關閉密碼登入。做法是在 /etc/ssh/sshd_config.d/ 建立一個 drop-in 檔案寫入 PasswordAuthentication no,或直接修改 /etc/ssh/sshd_config,然後以 sshd -t 檢查設定、重新啟動 sshd,再用 sshd -T | grep -i passwordauthentication 確認結果為 no。改動前應先確認密鑰登入正常,並保留現有連線直至測試成功[2]。
至於是否已被入侵,可檢查 /var/log/messages 內有沒有 Accepted password for 記錄,而該帳戶其實並無密碼,例如 alpine、root 或任何只設密鑰的用戶;同時應檢視 doas 使用紀錄、近期新增的用戶、檔案與 authorized_keys。若無法排除曾被登入,應視該機器已被攻陷[2]。
OpenSSH 團隊在公告中亦提到,近期收到大量由 AI 模型或 AI 輔助發現的安全報告,部分由 AI 找出的問題後來被另一名研究員獨立發現,因此團隊會改為更頻繁地發布修補版本,而非等到下一次計劃發布[1]。
參考資料
[1] Portable OpenSSH 10.6p2 release notes(2026-11-05)
[2] Security advisory: openssh-server password authentication bypass(2026-11-05)