運(yùn)維工程師來活了,Linux 又報(bào)了兩個超級漏洞(附解決方案)
2025年6月17日,Qualys研究團(tuán)隊(duì)披露了兩個關(guān)鍵的Linux漏洞:CVE-2025-6018和CVE-2025-6019。該漏洞可以鏈?zhǔn)嚼?允許攻擊者從普通角色提升到root角色,影響多個Linux發(fā)行版本,包括Ubuntu、Debian、Fedora、openSUSE Leap 15和SUSE Enterprise 15。該漏洞只需要SSH登錄就可以觸發(fā)。
1. 漏洞詳情
以下是兩個漏洞的核心信息:
漏洞 | CVE | 受影響組件 | 影響 | 受影響的發(fā)行版 |
本地權(quán)限提升 | CVE-2025-6018 | PAM 配置 | 授予 "allow_active" 狀態(tài),啟用特權(quán)操作 | openSUSE Leap 15, SUSE Linux Enterprise 15 |
根訪問權(quán)限漏洞 | CVE-2025-6019 | libblockdev 通過 udisks 守護(hù)進(jìn)程 | 結(jié)合 CVE-2025-6018 時(shí),啟用完全根訪問權(quán)限 | Ubuntu, Debian, Fedora, openSUSE Leap 15 |
2. 關(guān)鍵風(fēng)險(xiǎn)
- 完全系統(tǒng)接管:黑客可獲得root權(quán)限,控制系統(tǒng)和更改所有數(shù)據(jù)。
- 規(guī)避端點(diǎn)檢測:黑客可以繞過常見監(jiān)控工具。
- 持久后門:黑客可無感知留后門,從而實(shí)現(xiàn)長期控制系統(tǒng)。
- 橫向移動:黑客可利該漏洞攻擊網(wǎng)絡(luò)中的其他設(shè)備。
3. 技術(shù)背景
(1) PAM(Pluggable Authentication Modules)
PAM 是 Linux 系統(tǒng)中的一個用戶認(rèn)證框架模塊,它可以通過配置文件例如: /etc/pam.d/ 或者 /etc/pam.conf 中來管理和定義認(rèn)證策略。CVE-2025-6018 漏洞源于 PAM 配置中的一個漏洞,具體來說就是允許遠(yuǎn)程用戶(例如通過 SSH 登錄)獲得 "allow_active" 的狀態(tài)。通常這個狀態(tài)只會授予本地登陸的用戶(比如通過控制臺登錄),但配置錯誤會導(dǎo)致遠(yuǎn)程用戶也能獲得特權(quán)。
(2) polkit(PolicyKit)
polkit 是一個權(quán)限管理框架,用于控制非root用戶對root權(quán)限操作的訪問(如掛載設(shè)備或修改系統(tǒng)設(shè)置等)。CVE-2025-6019 利用了 polkit 的默認(rèn)規(guī)則,特別是 org.freedesktop.udisks2.modify-device,當(dāng)其設(shè)置為 allow_active=yes 時(shí),允許用戶無需認(rèn)證即可執(zhí)行這些root權(quán)限的動作。
(3) libblockdev 和 udisks
- libblockdev:一個 C 語言庫,用于與塊設(shè)備(如硬盤、分區(qū))交互,提供對存儲設(shè)備的底層操作支持。
- udisks2:通過 D-Bus 接口提供用戶空間對存儲設(shè)備的訪問,依賴 libblockdev。CVE-2025-6019 的漏洞存在于 libblockdev 中,通過 udisks 守護(hù)進(jìn)程允許黑客執(zhí)行root角色的操作。
4. 漏洞利用機(jī)制
Qualys 研究團(tuán)隊(duì)通過概念驗(yàn)證(PoC)代碼,證明了這些漏洞在受影響發(fā)行版上是可以執(zhí)行的。流程如下:
- CVE-2025-6018:通過 SSH 登錄,利用 PAM 配置錯誤獲得 "allow_active" 狀態(tài)。
- CVE-2025-6019:利用 libblockdev 的漏洞,通過 udisks 守護(hù)進(jìn)程執(zhí)行root角色操作,結(jié)合 CVE-2025-6018 的特權(quán)狀態(tài),最終獲得root權(quán)限。
這種攻擊鏈利用了系統(tǒng)中原生的服務(wù)(如 udisks 和 PAM),無需額外工具。
5. 哪些版本值得關(guān)注?
管理員需檢查系統(tǒng)是否運(yùn)行以下受影響的發(fā)行版:
- openSUSE Leap 15 和 SUSE Linux Enterprise 15(CVE-2025-6018 和 CVE-2025-6019)
- Ubuntu(CVE-2025-6019)
- Debian(CVE-2025-6019)
- Fedora(CVE-2025-6019)
檢查方法:
查libblockdev 和 udisks2 的版本:
- Debian/Ubuntu:dpkg -l | grep libblockdev 或 dpkg -l | grep udisks2
- Fedora:dnf list libblockdev 或 dnf list udisks2
- openSUSE:zypper info libblockdev 或 zypper info udisks2
檢查 PAM 配置文件(如 /etc/pam.d/sshd)是否存在 user_readenv=1 設(shè)置。
6. 補(bǔ)救措施
(1) 立即打補(bǔ)丁
各發(fā)行版已發(fā)布或正在發(fā)布補(bǔ)丁,具體如下:
發(fā)行版 | 包名 | 版本 | 安全公告 |
Debian bullseye (11) | libblockdev | 2.25-2+deb11u1 | DLA-4221-1 |
Debian bookworm (12) | libblockdev | 2.28-2+deb12u1 | DSA-5943-1 |
Debian sid/trixie | libblockdev | 3.3.0-2.1 | Debian Tracker |
Ubuntu 25.04 (plucky) | libblockdev | 3.3.0-2ubuntu0.1 | Ubuntu CVE-2025-6019 |
Ubuntu 24.10 (oracular) | libblockdev | 3.1.1-2ubuntu0.1 | Ubuntu CVE-2025-6019 |
Ubuntu 24.04 LTS (noble) | libblockdev | 3.1.1-1ubuntu0.1 | Ubuntu CVE-2025-6019 |
Ubuntu 22.04 LTS (jammy) | libblockdev | 2.26-1ubuntu0.1 | Ubuntu CVE-2025-6019 |
Ubuntu 20.04 LTS (focal) | libblockdev | 2.23-2ubuntu3+esm1 | Ubuntu CVE-2025-6019 |
Ubuntu 18.04 LTS (bionic) | libblockdev | 2.16-2ubuntu0.1~esm1 | Ubuntu CVE-2025-6019 |
Fedora | libblockdev, udisks2 | 最新版本 | 待確認(rèn),建議運(yùn)行 |
注意:
- Ubuntu 對 CVE-2025-6018 不受影響,因其未在遠(yuǎn)程認(rèn)證配置文件中設(shè)置 user_readenv=1。
- Fedora 的補(bǔ)丁信息尚未公開,建議管理員定期檢查 Fedora 安全更新。
操作步驟:
- Debian/Ubuntu:運(yùn)行 apt update && apt upgrade。
- Fedora:運(yùn)行 dnf update。
- openSUSE:運(yùn)行 zypper update。
(2) 修改 polkit 規(guī)則
默認(rèn)的 polkit 規(guī)則可能允許未經(jīng)認(rèn)證的操作,需調(diào)整 org.freedesktop.udisks2.modify-device 規(guī)則以要求管理員認(rèn)證。
修改步驟:
- 創(chuàng)建或編輯 /etc/polkit-1/rules.d/50-local.rules 文件:
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.modify-device") {
return polkit.Result.AUTH_ADMIN;
}
});
- 保存并重啟 polkit 服務(wù):systemctl restart polkit。
- 驗(yàn)證配置生效:嘗試以非管理員用戶執(zhí)行設(shè)備操作,應(yīng)提示認(rèn)證。
注意:不同發(fā)行版的 polkit 配置路徑可能略有差異,建議參考官方文檔。
(3) 加強(qiáng) SSH 安全性
由于漏洞可通過 SSH 登錄利用,需加強(qiáng) SSH 配置:
- 禁用 root 登錄:編輯 /etc/ssh/sshd_config,設(shè)置 PermitRootLogin no。
- 使用密鑰認(rèn)證:生成 SSH 密鑰對,禁用密碼登錄(PasswordAuthentication no)。
- 限制訪問:使用 AllowUsers 或 AllowGroups 限制 SSH 用戶。
- 啟用防火墻:使用 ufw 或 firewalld 限制 SSH 訪問來源 IP。
- 重啟 SSH 服務(wù):systemctl restart sshd。
(4) 系統(tǒng)監(jiān)控與檢測
管理員應(yīng)監(jiān)控系統(tǒng)以發(fā)現(xiàn)潛在入侵跡象:
- 使用 auditd:配置審計(jì)規(guī)則,監(jiān)控系統(tǒng)調(diào)用和重要文件是否有變更。
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/shadow -p wa -k shadow_changes
- 部署 IDS:使用 OSSEC 或 Tripwire 檢測異?;顒?。
- 檢查日志:定期審查 /var/log/auth.log 或 /var/log/secure,尋找異常登錄或命令執(zhí)行。
(5) 備份與恢復(fù)
- 定期備份:使用工具如 rsync 或 Timeshift 備份系統(tǒng)關(guān)鍵數(shù)據(jù)。
- 測試恢復(fù):定期驗(yàn)證備份可用性,確保在系統(tǒng)被接管時(shí)可快速恢復(fù)。
- 隔離備份:將備份存儲在離線或只讀介質(zhì)上,防止被惡意軟件破壞。
7. 結(jié)論
CVE-2025-6018和CVE-2025-6019是linux系統(tǒng)的一個重要的漏洞。系統(tǒng)工程師應(yīng)給足夠的重視、調(diào)整polkit配置,加固SSH,并實(shí)施監(jiān)控和備份。