Qualys 最近披露了兩個影響主流 Linux 發行版的本地權限提升 (LPE) 漏洞,分別是 CVE-2025-6018 和 CVE-2025-6019。這兩個漏洞可以被串聯利用,使得非特權用戶在幾秒鐘內獲得系統的 root 權限,從而實現對系統的完全控制。
一、漏洞詳情
這兩個漏洞的詳細情況如下:
1. CVE-2025-6018:PAM 中的非特權用戶到 allow_active
權限提升
- 影響范圍: 主要存在于 openSUSE Leap 15 和 SUSE Linux Enterprise 15 的 Pluggable Authentication Modules (PAM) 配置中。
- 漏洞性質: 這是一個本地權限提升漏洞。
- 工作原理: 允許一個非特權的本地攻擊者(例如通過 SSH 連接的用戶)將權限提升到 "allow_active" 用戶。這個 "allow_active" 權限通常保留給物理在場的用戶,用于執行特定的 Polkit 操作。Qualys 的研究表明,通過 PAM 的配置缺陷,攻擊者可以篡改環境變量,從而繞過 Polkit 的
allow_active
信任區域。
2. CVE-2025-6019:allow_active
用戶到 root 權限提升
- 影響范圍: 影響
libblockdev
庫,并通過udisks
守護進程進行利用,udisks
守護進程在大多數 Linux 發行版中默認安裝。 - 漏洞性質: 這是一個本地權限提升漏洞。
- 工作原理: 這個漏洞允許具有 "allow_active" 權限的用戶獲得完整的 root 權限。即使 CVE-2025-6019 獨立利用需要先獲得 "allow_active" 權限,但當它與 CVE-2025-6018 串聯使用時,一個完全非特權的攻擊者也能最終獲得 root 權限。攻擊者可以利用
udisks
的功能,例如通過掛載帶有 SUID-root shell 的任意 XFS 鏡像,并請求udisks
守護進程調整文件系統大小(這會在/tmp
掛載時不會帶有nosuid
和nodev
標志),從而執行 SUID-root shell,最終獲得 root 權限。
二、漏洞鏈的危害
這兩個漏洞的真正危險之處在于它們可以串聯使用。具體來說:
- CVE-2025-6018 允許非特權用戶將權限提升到 "allow_active" 狀態。
- 一旦獲得 "allow_active" 權限,攻擊者就可以利用 CVE-2025-6019,通過
libblockdev
和udisks
進一步將權限提升到 root。
這意味著,擁有任何活躍 GUI 或 SSH 會話的攻擊者,只要利用這兩個漏洞,就可以在幾秒鐘內從普通登錄用戶直接獲得系統的完全控制權。一旦獲得 root 權限,攻擊者將可以隨意修改安全控制、植入后門以進行持久化訪問,并將受感染系統作為跳板進行進一步的網絡滲透。
Qualys 表示已開發出概念驗證 (PoC) 漏洞利用,并在包括 Ubuntu、Debian、Fedora 和 openSUSE Leap 15 在內的多個主流 Linux 發行版上驗證了這些漏洞。
三、緩解措施
鑒于這些漏洞的嚴重性和易于利用性,Qualys 強調這應被視為一個關鍵且普遍的風險。
- 立即打補丁: 最重要的緩解措施是立即從您的 Linux 發行版供應商處獲取并應用相應的補丁。許多主流發行版(如 Ubuntu)已經發布了針對這些漏洞的修復。
- 配置更改: 如果暫時無法打補丁,Qualys 專家建議修改
polkit
規則中針對 "org.freedesktop.udisks2.modify-device" 的allow_active
設置,將其從yes
更改為auth_admin
。這將要求管理員認證才能執行該操作,從而增加利用難度。
四、如何檢查你的系統是否受影響
由于這些是新發現的漏洞,并且補丁正在陸續發布,最準確的檢查方法是:
-
查看你的發行版官方安全公告: 訪問你的 Linux 發行版(如 Ubuntu、Debian、Fedora、openSUSE 等)的官方安全公告頁面。搜索 CVE-2025-6018 和 CVE-2025-6019。這些公告會詳細說明受影響的版本、已發布的補丁版本以及任何臨時的緩解措施。
- Ubuntu: 通常在 Ubuntu Security Notices 頁面查找。
- Debian: 可以在 Debian Security Advisories 頁面查找。
- Fedora/Red Hat: 可以在 Red Hat Security Advisories 或 Fedora Project Updates 頁面查找。
- openSUSE/SUSE: 可以在 SUSE Security Advisories 頁面查找。
-
檢查相關軟件包版本:
- CVE-2025-6018 主要涉及 PAM (Pluggable Authentication Modules) 的配置,尤其是在 openSUSE Leap 15 和 SUSE Linux Enterprise 15 上。Ubuntu 默認安裝可能不受此特定漏洞的影響,但最好還是查看官方說明。
- CVE-2025-6019 影響
libblockdev
庫,并通過udisks
守護進程利用。這個漏洞在大多數 Linux 發行版中都存在,因為它涉及到udisks
這個普遍存在的組件。 - 你可以使用包管理器查詢當前安裝的
libblockdev
和udisks2
(或udisks
)軟件包版本。- Debian/Ubuntu:
dpkg -l | grep libblockdev
和dpkg -l | grep udisks2
- Fedora/CentOS/RHEL:
rpm -qa | grep libblockdev
和rpm -qa | grep udisks2
- openSUSE/SUSE:
rpm -qa | grep libblockdev
和rpm -qa | grep udisks2
- Debian/Ubuntu:
- 然后將你查詢到的版本與官方安全公告中提及的已修復版本進行比對。
-
Qualys 漏洞檢測: 如果你的組織使用 Qualys 等漏洞掃描工具,它們會發布相關的 QID(Qualys ID)來檢測這些漏洞,通過掃描你的系統可以快速識別是否存在風險。
五、如何更新(打補丁)
更新你的系統以修復這些漏洞的關鍵在于應用最新的官方補丁。具體步驟取決于你的 Linux 發行版。
1. Ubuntu/Debian
通常,這兩個發行版使用 apt
或 apt-get
包管理器。
- 更新包列表:
sudo apt update
- 執行系統升級:
或者執行更全面的發行版升級(如果需要升級到新的主要版本,但在大多數情況下sudo apt upgrade
upgrade
足夠):?
這會下載并安裝所有可用的安全更新和軟件包更新,包括針對這兩個 CVE 的補丁(如果你的發行版已發布)。sudo apt dist-upgrade
- 檢查更新后的版本: 更新完成后,可以再次使用
dpkg -l
命令檢查libblockdev
和udisks2
(以及 PAM 相關組件)的版本,并與官方公告中的修復版本進行核對。 - 重啟系統: 如果涉及到內核、
glibc
、PAM 或其他核心系統組件的更新,強烈建議重啟你的系統以確保所有更改生效,并且舊的、有漏洞的服務進程被替換。
2. Fedora/CentOS/RHEL
這些發行版使用 dnf
或 yum
包管理器。
- 更新包列表并安裝更新:?
這將下載并安裝所有可用的安全更新和軟件包更新。sudo dnf update # 或者 sudo yum update
- 檢查更新后的版本: 更新完成后,使用
rpm -qa | grep libblockdev
和rpm -qa | grep udisks2
來驗證版本是否已更新到安全版本。 - 重啟系統: 同樣,強烈建議重啟系統以確保所有關鍵組件的更新生效。
3. openSUSE/SUSE Linux Enterprise
openSUSE 使用 zypper
包管理器。
- 更新包列表并安裝更新:
或者只安裝推薦的更新:sudo zypper refresh sudo zypper update
sudo zypper patch
- 檢查更新后的版本: 使用
rpm -qa | grep libblockdev
和rpm -qa | grep udisks2
來驗證版本。 - 重啟系統: 建議重啟系統以應用所有更新。
六、臨時緩解措施 (如果無法立即打補丁)
如果無法立即應用補丁,Qualys 建議采取以下臨時緩解措施,但這不能完全替代打補丁:
- 修改 Polkit 規則: 修改
/etc/polkit-1/rules.d/
目錄下相關的 Polkit 規則文件(可能需要根據你的系統找到正確的文件),將org.freedesktop.udisks2.modify-device
動作的allow_active
設置從yes
更改為auth_admin
。 例如,你可能需要編輯一個類似于/etc/polkit-1/rules.d/10-udisks2.rules
或類似的文件,找到類似以下內容:?
將其中的polkit.addRule(function(action, subject) {if (action.id == "org.freedesktop.udisks2.modify-device" &&subject.isInGroup("users") || subject.active) { // subject.active 部分return polkit.Result.YES; // 更改為 polkit.Result.AUTH_ADMIN;} });
polkit.Result.YES
更改為polkit.Result.AUTH_ADMIN
。這會要求管理員認證才能執行該操作,從而增加攻擊者利用的難度。請務必小心操作,并在修改前備份相關文件。
重要提示:
- 及時關注官方公告: Linux 發行版會不斷發布新的安全更新。請務必定期查看你所用發行版的官方安全公告,以獲取最準確和最新的信息。
- 重啟的重要性: 即使你的包管理器顯示更新已完成,許多核心組件(如PAM庫、udev等)的更改只有在進程重啟后才能完全生效。對于服務器,這可能意味著需要計劃停機以進行完整的系統重啟。
七、?排查腳本示例
# 檢查是否仍允許 allow_active
grep -A3 modify-device /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy \
| grep -q "<allow_active>yes</allow_active>" && \
echo "[!] 仍存在風險,需改成 auth_admin"# 檢查 libblockdev 版本
rpm -q libblockdev || dpkg -l | grep libblockdev
八、總結
CVE-2025-6018 和 CVE-2025-6019 是非常危險的本地權限提升漏洞,它們可以被串聯利用,讓非特權用戶輕松獲得 Linux 系統的 root 權限。系統管理員應高度重視這些漏洞,并盡快采取措施進行修復,以保護系統安全。