OpenSSH 緊急修補「SSHole」CVE-2026-123158:musl 且未啟用 PAM 的 Linux 輸入超長密碼就能登入,Alpine 用戶請更新並重啟 sshd

作者

OpenSSH 在 11 月 5 日緊急釋出 10.6p2,修補代號「SSHole」的密碼驗證繞過漏洞 CVE-2026-123158(CVSS 8.1)。受影響的是使用 musl libc、且未啟用 PAM 的 Linux 系統,Alpine Linux 是最典型的例子:在特定帳號設定下,輸入超過 256 字元的任意長密碼就可能直接登入,甚至拿到 root。

事件經過

  • 11 月 4 日:OpenSSH 團隊接獲 Wakefield 研究員 Özgün Kültekin 通報(OpenSSH 開發者 Damien Miller 表示是發布前一天才得知)。
  • 11 月 5 日:OpenSSH 釋出 10.6p2;同日 oss-security 郵件論壇公開說明;Alpine Linux 呼籲用戶立即更新並重新啟動 sshd。
  • Damien Miller 表示,因近期觀察到 AI 代理在數小時內就「重新發現」同一漏洞的案例,認為長時間保密期反而對攻擊者有利,所以這次盡快發布。

重點

  • 成因:musl 的 crypt() 在密碼過長時回傳「*」,剛好與「未設定密碼」帳號在 shadow 檔中的「*」相同,造成比對誤判。OpenSSH 認為根本原因不在 sshd,但可經由 sshd 利用,因此在 sshd 端加上防護。
  • 影響範圍:Alpine 表示其檢查的 3.21 至 3.24、edge,以及已不再定期更新的 3.16 至 3.20 都受影響。研究員另指出 OpenWrt、Buildroot、Yocto 等環境也可能有類似設定,請以各發行版公告為準。
  • 一般 glibc 發行版(如 Debian、Ubuntu、RHEL)不使用 musl,也多半啟用 PAM,不在這次的主要影響範圍。
項目內容
CVECVE-2026-123158(SSHole)
CVSS8.1
受影響OpenSSH 10.6p2 之前版本,搭配 musl libc 且未啟用 PAM
修正OpenSSH 10.6p2;Alpine 3.21.10、3.22.8、3.23.8、3.24.4
暫時緩解sshd_config 設定 PasswordAuthentication no 後重啟 sshd

觸發條件(依 Alpine 說明,需同時成立)

  1. sshd 未啟用 PAM,且允許密碼登入。
  2. 存在密碼欄位為「*」的帳號,例如 Alpine 3.16 起預設的 root、用 adduser 建立但未設密碼的金鑰登入帳號、官方 tiny-cloud 映像中的 alpine 帳號。
  3. 系統內至少另有一個使用 $5$ 或 $6$(SHA-256/SHA-512 crypt)雜湊的本機帳號。

對你的實務建議

企業 / IT 管理者

  • 盤點所有以 Alpine 為基底的主機、VM 與容器,特別是有跑 sshd 的跳板機、雲端映像與 CI runner。
  • 更新 openssh 套件後一定要重新啟動 sshd,否則仍是舊程式在執行。
  • 暫時無法更新的,先設定 PasswordAuthentication no 並重啟 sshd,改用金鑰登入。
  • 限制 SSH 只允許管理網段或 VPN 來源連線,不要把 22 埠直接開在網際網路上。
  • 檢查 auth 紀錄中是否有異常長密碼的登入嘗試或可疑成功登入,必要時重建受影響主機並輪替金鑰。
  • 自行編譯 OpenSSH 的嵌入式或網通設備,向供應商確認是否使用 musl 且停用 PAM,並索取更新時程。

一般用戶

  • 家用 NAS、路由器或樹莓派若跑 Alpine 或 OpenWrt 並開了 SSH,請更新系統,並關閉對外的 SSH 連線。
  • 不需要遠端登入就把 SSH 關掉;需要時改用金鑰登入,並透過 VPN 連回家。
  • 使用雲端主機的個人開發者,確認自己用的映像是否為 Alpine,並套用更新。

資料來源

留言

發表留言