9.0Critical
未列入 CISA KEV
PoC 狀態未確認
三句重點
- 成因
- Samba 把用戶端使用者名稱代入 check password script 的 %u,未做 shell 逸出(CWE-78)。
- 影響
- 未驗證攻擊者可以 samba-dcerpcd 系統服務權限執行任意指令,該服務常以 root 執行。
- 條件
- 須為檔案伺服器或 classic DC、腳本含 %u,且 samba-dcerpcd 以系統服務啟動。
版本比對
| 套件 | ❌ 受影響版本 | ✅ 安全版本 |
|---|---|---|
| Samba | 4.22.x 於 4.22.10 之前;4.23.x 於 4.23.8 之前;4.24.x 於 4.24.3 之前(脆弱組態下官方稱所有版本皆受影響) | >= 4.22.10 / 4.23.8 / 4.24.3 |
| samba | RHEL 8/9/10 修補套件之前(含 EUS 9.6、10.0) | >= 0:4.19.4-16.el8_10;0:4.23.5-10.el9_8;0:4.23.5-109.el10_2 |
| sambaapt | Ubuntu 24.04 LTS(noble)於 USN-8306-1 之前 | >= 2:4.19.5+dfsg-4ubuntu9.6 |
| sambaapt | Debian bookworm 於 DSA-6297-1 之前 | >= 2:4.17.12+dfsg-0+deb12u4 |
修復指令
請先於測試環境驗證,再套用到正式環境。
sudo apt-get install --only-upgrade sambasudo apt-get install --only-upgrade samba修補方式
- Samba(4.22.x 於 4.22.10 之前;4.23.x 於 4.23.8 之前;4.24.x 於 4.24.3 之前(脆弱組態下官方稱所有版本皆受影響)):升級至 4.22.10 / 4.23.8 / 4.24.3 以上版本
- samba(RHEL 8/9/10 修補套件之前(含 EUS 9.6、10.0)):升級至 0:4.19.4-16.el8_10;0:4.23.5-10.el9_8;0:4.23.5-109.el10_2 以上版本
- samba(Ubuntu 24.04 LTS(noble)於 USN-8306-1 之前):升級至 2:4.19.5+dfsg-4ubuntu9.6 以上版本
- samba(Debian bookworm 於 DSA-6297-1 之前):升級至 2:4.17.12+dfsg-0+deb12u4 以上版本
攻擊思路
- 確認脆弱組態:目標須為檔案伺服器或 classic(非 AD)DC,smb.conf 的 check password script 含 %u,且 samba-dcerpcd 以系統服務啟動(rpc start on demand helpers = no)。 來源
- 連線 RPC 傳輸:未驗證用戶端以 NCACN_IP_TCP 連到 samba-dcerpcd;常見先經 TCP 135 端點對應器,再連動態 RPC 埠,而非預設 SMB named pipe。 來源
- 綁定 SAMR 介面:對 SAMR 介面做 DCE/RPC bind,呼叫 SamrValidatePassword(opnum 67),ValidationType 為 PasswordChange 或 PasswordReset。 來源
- 未逸出名稱代入:請求中的 UserAccountName 被填入 %u 後交給 smbrunsecret,未呼叫 escape_shell_string,shell 中繼字元會被解讀。 來源
- 服務權限執行:單次 RPC 即可觸發腳本;成功時指令以 samba-dcerpcd 系統服務權限執行,Samba 與多數發行版描述該服務常以 root 執行。 來源
偵測提示
- smb.conf:檢查 check password script 是否含 %u,以及 rpc start on demand helpers 是否為非預設的 no。
- samba-dcerpcd 程序:確認是否以系統服務常駐啟動,而非由 smbd 以 --np-helper 隨需提供 named pipe。
- 伺服器角色:確認為檔案伺服器或 classic(非 AD)DC;Active Directory Domain Controller 不會以此路徑展開 %u。
- 網路/RPC 端點:關注 NCACN_IP_TCP 上對 SAMR 的存取,以及 TCP 135 端點對應後的動態 RPC 連線,勿只監看 SMB 445。
- SAMR 呼叫:關注對 SAMR 的 DCE/RPC bind,以及 SamrValidatePassword(opnum 67)的 PasswordChange/PasswordReset。
- 密碼檢查腳本與審計:檢查腳本被呼叫時的帳號名稱是否含 shell 中繼字元,以及 samba-dcerpcd 權限下的異常子行程或檔案變更。
暫時緩解
升級至 Samba 4.22.10、4.23.8 或 4.24.3(或發行版對應 errata),或套用 Samba Security 官方 patch。暫時緩解:維持 rpc start on demand helpers = yes,勿將 samba-dcerpcd 當系統服務;或自 check password script 移除 %u,改由環境變數 SAMBA_CPS_ACCOUNT_NAME 讀取使用者名稱。以單引號包住 %u 不是完整緩解。
通報團隊
複製成可直接貼到 Slack 或 Email 的通報文字。
預覽通報內容
🚨【資安漏洞通報】CVE-2026-4408 等級:Critical (9.0) 受影響套件:Samba 4.22.x 於 4.22.10 之前;4.23.x 於 4.23.8 之前;4.24.x 於 4.24.3 之前(脆弱組態下官方稱所有版本皆受影響)、samba RHEL 8/9/10 修補套件之前(含 EUS 9.6、10.0)、samba Ubuntu 24.04 LTS(noble)於 USN-8306-1 之前、samba Debian bookworm 於 DSA-6297-1 之前 漏洞簡述:Samba 把用戶端使用者名稱代入 check password script 的 %u,未做 shell 逸出(CWE-78)。;未驗證攻擊者可以 samba-dcerpcd 系統服務權限執行任意指令,該服務常以 root 執行。;須為檔案伺服器或 classic DC、腳本含 %u,且 samba-dcerpcd 以系統服務啟動。 建議措施:依受影響版本升級:Samba(4.22.x 於 4.22.10 之前;4.23.x 於 4.23.8 之前;4.24.x 於 4.24.3 之前(脆弱組態下官方稱所有版本皆受影響))升級至 4.22.10 / 4.23.8 / 4.24.3 以上;samba(RHEL 8/9/10 修補套件之前(含 EUS 9.6、10.0))升級至 0:4.19.4-16.el8_10;0:4.23.5-10.el9_8;0:4.23.5-109.el10_2 以上;samba(Ubuntu 24.04 LTS(noble)於 USN-8306-1 之前)升級至 2:4.19.5+dfsg-4ubuntu9.6 以上;samba(Debian bookworm 於 DSA-6297-1 之前)升級至 2:4.17.12+dfsg-0+deb12u4 以上 詳細連結:https://cve.eacc.online/cve/CVE-2026-4408
參考連結
- https://www.samba.org/samba/security/CVE-2026-4408.html
- https://www.samba.org/samba/history/samba-4.24.3.html
- https://bugzilla.samba.org/show_bug.cgi?id=16034
- https://www.cve.org/CVERecord?id=CVE-2026-4408
- https://nvd.nist.gov/vuln/detail/CVE-2026-4408
- https://github.com/advisories/GHSA-jg8v-92xc-cx65
- https://access.redhat.com/security/cve/CVE-2026-4408
- https://access.redhat.com/errata/RHSA-2026:22644
- https://ubuntu.com/security/CVE-2026-4408
- https://security-tracker.debian.org/tracker/CVE-2026-4408