Dirty Frag: 一個通用的 Linux 本地權限提升漏洞

Linux 核心再次面臨嚴重的安全挑戰,因為發現了名為 "Dirty Frag" 的通用本地權限提升 (LPE) 漏洞。此漏洞允許未經授權的使用者在所有主要的 Linux 發行版上取得 root 權限,其影響力與之前的 "Copy Fail" 漏洞如出一轍。

Dirty Frag 之所以特別危險,是因為它能夠針對頁面快取 (page cache) 進行攻擊,允許攻擊者在沒有磁碟寫入權限的情況下,直接在記憶體中修改關鍵的系統二進位檔或組態檔。由於該漏洞是在禁令期破裂後才揭露的,最初在社群尚未有即時修補程式或 CVE 可用的情況下便已衝擊了社群。

攻擊機制

Dirty Frag 並非單一漏洞,而是兩個獨立漏洞的組合。它利用了某些不常用的 socket 位址族 (address families) 和核心模組,儘管這些模組僅被極少數的使用者使用,但在許多發行版中通常都是預設啟用的。

ESP 路徑

一個主要的攻擊向量涉及 esp4esp6 模組。透過利用這些模組,攻擊者可以覆寫目標二進位檔的頁面快取。在提供的概念驗證 (PoC) 中,攻擊者針對 /usr/bin/su。透過將二進位檔頁面快取的首 160 個位元組覆寫為一個極簡的 x86_64 root-shell ELF,攻擊者能將原本需要身分驗證的 su 指令轉換為一個能立即以 root 使用者身分執行 /bin/sh 的工具。

RxRPC 路徑

作為備案(特別是在像 Ubuntu 這樣的系統上,其他路徑可能會被沙盒化),此漏洞利用了 rxrpc (以及 rxkad) 模組。此路徑使用一種更複雜的原語 (primitive) 來修補 /etc/passwd 中的 root 入口。

具體而言,它採用了 "three-splice" 技術來修改 root 使用者的條目,使其擁有空的密碼欄位,並將 shell 設定為 /bin/bash。由於許多系統都配置了 pam_unix.so nullok,空的密碼欄位允許攻擊者執行 su - 並在不提供任何密碼的情況下取得 root 權限。

揭露爭議

Dirty Frag 的發布伴隨著負責任揭露流程的崩潰。根據揭露時間線:

  • 2026 年 4 月 29 日: 研究人員向 security@kernel.orgnetdev 郵件列表提交了 RxRPC 漏洞及其武器化的漏洞利用程式碼。
  • 2026 年 5 月 7 日: 資訊被分享至 linux-distros 郵件列表,並處於 5 天的禁令期內。
  • 2026 年 5 月 7 日: 一個無關的第三方公開發布了關於 ESP 漏洞的資訊,導致禁令期破裂。
  • 2026 年 5 月 7 日: 隨著禁令期被破壞,研究人員隨即發布了完整的 Dirty Frag 文件與漏洞利用程式碼。

技術洞察與社群反應

安全社群注意到這類漏洞中存在一種重複發生的模式。從 "Dirty Pipe" 到 "Copy Fail" 再到現在的 "Dirty Frag",這顯示出頁面快取頁面的唯讀保護機制仍然非常脆弱。

AI 在漏洞研究中的角色

一些研究人員針對在此領域使用大型語言模型 (LLMs) 是否合當引發了辯論。一位評論者指出,雖然 AI 可以提供即時的答案,但它可能會阻礙研究的 "探索" 階段:

"我發現使用 AI 進行漏洞研究真的會阻礙我的創造力... 你無法看到周圍可能存在的其他資訊。它就像一個神燈精靈——你得到的是你要求的,而且僅此而已。"

相反地,其他人認為 LLMs 正加速將修補程式逆向工程為武器化的漏洞利用程式碼的速度,使得傳統的 "quiet patch" 模型變得過時。

發行版預設設定

對於為何許多主要發行版在預設情況下都啟用了使用率低於 0.1% 的選用核心功能,社群存在著顯著的批評。這種在預設核心組態中存在的 "bloat" (臃腫) 大幅增加了 LPE 的攻擊面。

緩解措施與防禦

在官方修補程式完全部署到所有發行版之前,建議採取以下幾種緩解措施:

1. 停用受影響的模組

使用者可以手動停用受影響的模組以阻斷攻擊向量:

sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

2. 限制未經授權的使用者命名空間

許多此類漏洞利用程式依賴於未經授權的使用者命名空間來在網路命名空間內取得必要的權限 (例如 CAP_NET_RAW)。停用此功能可以同時阻斷 ESP 和 RxRPC 路徑:

echo 1 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns

注意:這可能會導致某些應用程式沙盒化失效,例如現代網頁瀏覽器所使用的沙盒機制。

3. 使用極簡核心

此事件再次促使人們呼籲發行版應轉向更量身定制的方法,預設發送極簡核心,並要求使用者僅在需要時才明確啟用特定的網路模組。

Sources