
摘要
本報告提供了對 CVE-2025-32462 的全面技術分析,這是 Sudo 工具中發現的一個本機權限提升漏洞。該漏洞存在於 Sudo 1.8.8 至 1.9.17 版本中,源於
-h
或
--host
選項的非預期行為,允許未經授權的使用者在具有特定
sudoers
設定的系統上提升至 root 權限。本文件深入探討了該漏洞的技術細節、攻擊機制、受影響的版本以及建議的更新措施。分析強調了安全管理
sudoers
檔案以及及時更新的重要性,以減輕此類關鍵安全漏洞的風險。

1. 簡介
Sudo(superuser do)工具是類 Unix 作業系統的基本元件,允許授權使用者以另一使用者的權限(通常為超級使用者 root)執行命令。其廣泛應用得益於其能夠執行最小權限原則,讓系統管理員可以在不洩露 root 密碼的情況下委派特定管理任務。此外,Sudo 會記錄執行的命令審核軌跡,提升了問責制與安全態勢。然而,這類關鍵工具的複雜性和廣泛功能有時可能隱藏微妙的漏洞,若被攻擊,可能導致嚴重的安全漏洞。
近期,一個重要的本機權限提升漏洞 CVE-2025-32462 在 Sudo 工具中被發現。這個漏洞超過十年未被察覺,對設定特定
sudoers
規則的系統構成重大風險。該漏洞特別利用了
-h
(或
--host
)命令列選項的非預期互動,該選項原本設計用於非特權用途。本報告旨在剖析 CVE-2025-32462,提供其機制、影響及必要更新措施的詳細技術概述。通過了解此漏洞的細微之處,系統管理員和安全專業人員可以更好地保護其環境免受類似威脅。
2. CVE-2025-32462 技術分析
2.1. Sudo 與
sudoers
設定的背景
Sudo 的運作框架由
sudoers
檔案管理,通常位於
/etc/sudoers
或
/etc/sudoers.d
目錄中的檔案。此設定檔案定義了誰可以在哪些終端機上以哪些使用者的身份、在哪些主機上執行哪些命令。
sudoers
語法的靈活性允許對使用者權限進行細粒度控制,使其成為管理多使用者系統的不可或缺工具。關鍵指令包括
User_Alias
、
Runas_Alias
、
Cmnd_Alias
和
Host_Alias
。其中,
Host_Alias
指令是 CVE-2025-32462 的核心,允許管理員定義主機群組,使一致的權限政策能應用於網路中的多台機器,而無需為每台主機重複規則。此功能在大型企業環境中尤其有益,單一
sudoers
檔案可能散播至眾多伺服器
[1]
。
2.2.
-h
(
--host
) 選項及其誤用
Sudo 的
-h
或
--host
選項於 2013 年 9 月的 Sudo 1.8.8 版本中引入。其設計目的,如 Sudo 專案的
NEWS
文件所述,是允許使用者列出非當前主機的 Sudo 規則,特別是與
-l
或
--list
選項結合使用
[2]
。此功能旨在協助管理員在無需登入每台機器的情況下,驗證不同主機的權限設定。例如,使用者可執行
sudo -l -h
以檢查其在
上的 Sudo 權限。
-h
選項未嚴格限制於資訊列出操作。
儘管其文件記載的用途明確,但
-h
選項卻可用於其他 Sudo 操作,例如命令執行或
sudoedit
檔案編輯。此疏忽導致 Sudo 安全模型的關鍵繞過。當使用者以
-h
選項指定非當前本地主機的
Host_Alias
主機,執行
sudo
或
sudoedit
時,Sudo 的內部邏輯會錯誤地評估
sudoers
規則。Sudo 未因主機名稱不匹配而拒絕請求,反而將與指定遠端主機相關的規則視為適用於本地系統
[1]
。
2.3. 攻擊機制
CVE-2025-32462 的攻擊取決於特定
sudoers
設定,這些設定在集中管理
sudoers
或基於 LDAP 的
sudoers
環境中常見。假設一個
sudoers
檔案包含規則,授予使用者(如
lowpriv
)在開發伺服器(
dev.test.local
)上提升權限,但明確禁止在生產伺服器(
prod.test.local
)上擁有此權限。典型的
sudoers
片段可能如下:
- Host_Alias PROD_SERVERS = prod.test yerel
- Host_Alias DEV_SERVERS = dev.test.local
- lowpriv ALL=(root) ALL, !PROD_SERVERS
- lowpriv DEV_SERVERS=(root) ALL
在此設定中,
lowpriv
應在
DEV_SERVERS
上擁有完整 root 存取權限,但在
PROD_SERVERS
上被明確拒絕。若
lowpriv
直接在
prod.test.local
上以 root 身份執行命令,Sudo 會因
!PROD_SERVERS
否定而正確拒絕請求。然而,透過 CVE-2025-32462,
lowpriv
可利用
-h
選項。在
prod.test.local
機器上執行
sudo -h dev.test.local /bin/bash
,Sudo 的錯誤邏輯會將規則
lowpriv DEV_SERVERS=(root) ALL
視為在
dev.test.local
上執行,從而允許在
prod.test.local
上以 root 權限執行
/bin/bash
,有效繞過預定的安全策略
[1]
。
此行為尤為隱秘,因為它無需複雜的漏洞攻擊程式碼。該漏洞利用 Sudo 的內建選項,屬於邏輯缺陷而非記憶體損壞或緩衝區溢位問題。攻擊的成功僅依賴於存在授予其他主機權限的
sudoers
規則,這在許多分散式系統環境中是常見且合法的設定。Sudo 的除錯日誌會顯示所有屬性符合
DEV_SERVERS
規則,導致意外的權限提升
[1]
。
3. 受影響版本與影響
CVE-2025-32462 影響廣泛的 Sudo 版本,具體為穩定版本 1.9.0 至 1.9.17,以及舊版 1.8.8 至 1.8.32
[1]
。此廣泛範圍表明該漏洞自 2013 年引入
-h
選項後,已存在於 Sudo 程式碼庫中超過 12 年。其長期潛伏凸顯了該缺陷的隱秘性以及識別複雜軟體中邏輯漏洞的挑戰。
Sudo 版本範圍 | 狀態 | 驗證平台 |
---|---|---|
1.9.0 - 1.9.17 | 有漏洞(穩定版) | Ubuntu 24.04.1 (Sudo 1.9.15p5, 1.9.16p2) |
1.8.8 - 1.8.32 | 有漏洞(舊版) | macOS Sequoia 15.3.2 (Sudo 1.9.13p2) |
1.9.17p1+ | 已更新 | 所有支援平台 |
此漏洞的影響重大,因為它允許本機權限提升至 root。雖然需要特定的
sudoers
設定才能被利用,但此類設定在企業環境中常見,特別是使用集中式
sudoers
檔案或基於 LDAP 的
sudoers
來管理多台機器的權限。低權限使用者獲得 root 存取權可能導致系統完全被入侵,包括資料外洩、系統修改或進一步部署 malicious payload。該漏洞已在多種作業系統上驗證,包括 Ubuntu 24.04.1(Sudo 1.9.15p5、1.9.16p2)和 macOS Sequoia 15.3.2(Sudo 1.9.13p2),顯示其跨平台適用性
[1]
。
4. 緩解與更新
對 CVE-2025-32462 的主要且最有效的緩解措施是將 Sudo 更新至 1.9.17p1 或更高版本。此更新版本限制了
-h
選項僅用於與
-l
(列出)操作的預定用途,防止其被誤用於權限提升。該更新由 Sudo 專案維護者 Todd Miller 提出,已驗證能有效解決問題
[1]
。
強烈建議系統管理員:
- 更新 Sudo: 立即將所有受影響系統的 Sudo 套件更新至最新版本(1.9.17p1 或更新)。除更新外,無其他已知解決方法 [1] 。
-
審查
sudoers
設定: 即使更新後,仍建議審查現有sudoers
檔案及任何相關的Host
或Host_Alias
選項。管理員應檢查/etc/sudoers
及/etc/sudoers.d
下的檔案。對於使用 LDAP 管理sudoers
規則的環境,可使用ldapsearch
等工具來 dump 和審查設定 [1] 。此審查有助於了解當前的權限狀況,識別任何潛在風險設定,即使直接漏洞(Immediate vulnerability)已更新。
5. 結論
CVE-2025-32462 是 Sudo 工具中的一個關鍵本機權限提升漏洞,源於
-h
選項的非預期行為。其長期存在於程式碼庫中及對常見
sudoers
設定的依賴,凸顯了持續安全審核和及時更新的重要性。雖然該漏洞無需複雜的攻擊程式碼,但其影響可能嚴重,導致受影響系統的完全 root 入侵。及時接受更新(Sudo 1.9.17p1 或更高版本)對於減輕此風險至關重要。此外,徹底審查
sudoers
設定仍是確保權限委派符合最小權限原則、防止類似邏輯缺陷被利用的重要安全實踐。