---
title: "OpenSSH 緊急發布 10.6p2　修補 musl 系統密碼認證可被繞過漏洞"
url: https://sammy.hk/openssh-10-6p2-musl-auth-bypass/
author: Ethan
published: 2026-11-06T11:17:00+08:00
modified: 2026-11-06T11:17:00+08:00
description: "OpenSSH 專案於 2026 年 11 月 5 日發布 Portable OpenSSH 10.6p2，處理一個可經 sshd 觸發的密碼認證繞過問題，影響使用 musl libc 且關閉 PAM 支援的 Linux 系統，Alpine Linux 是當中最主要的受影響發行版。官方將此版本定性為關鍵安全修補，Alp…"
categories: ["開放源碼"]
tags: [Alpine Linux, OpenSSH, "安全漏洞", "開源安全"]
source: https://sammy.hk
---
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）](https://www.openssh.com/txt/release-10.6p2)

\[2\] [Security advisory: openssh-server password authentication bypass（2026-11-05）](https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/)

### 相關文章：

1. [Rust 官方警告：針對知名開發者的目標攻擊正在進行](https://sammy.hk/rust-%e5%ae%98%e6%96%b9%e8%ad%a6%e5%91%8a%ef%bc%9a%e9%87%9d%e5%b0%8d%e7%9f%a5%e5%90%8d%e9%96%8b%e7%99%bc%e8%80%85%e7%9a%84%e7%9b%ae%e6%a8%99%e6%94%bb%e6%93%8a%e6%ad%a3%e5%9c%a8%e9%80%b2%e8%a1%8c/ "Rust 官方警告：針對知名開發者的目標攻擊正在進行")
2. [Cloudflare Containers 跨租戶資料外洩漏洞：dm-thin 未清零的殘留磁碟區塊](https://sammy.hk/cloudflare-containers-%e8%b7%a8%e7%a7%9f%e6%88%b6%e8%b3%87%e6%96%99%e5%a4%96%e6%b4%a9%e6%bc%8f%e6%b4%9e%ef%bc%9adm-thin-%e6%9c%aa%e6%b8%85%e9%9b%b6%e7%9a%84%e6%ae%98%e7%95%99%e7%a3%81%e7%a2%9f/ "Cloudflare Containers 跨租戶資料外洩漏洞：dm-thin 未清零的殘留磁碟區塊")
3. [OpenSSH 10.6 發布：收緊預設設定、啟用混合後量子簽名](https://sammy.hk/openssh-10-6-%e7%99%bc%e5%b8%83%ef%bc%9a%e6%94%b6%e7%b7%8a%e9%a0%90%e8%a8%ad%e8%a8%ad%e5%ae%9a%e3%80%81%e5%95%9f%e7%94%a8%e6%b7%b7%e5%90%88%e5%be%8c%e9%87%8f%e5%ad%90%e7%b0%bd%e5%90%8d/ "OpenSSH 10.6 發布：收緊預設設定、啟用混合後量子簽名")
4. [PHP 修補兩個嚴重漏洞：未認證即可遙距執行代碼，官方籲即時更新](https://sammy.hk/php2shell/ "PHP 修補兩個嚴重漏洞：未認證即可遙距執行代碼，官方籲即時更新")
