YYaaa News

Linux 內核 DirtyClone 爆雷|不留任何日誌的本地提權,直接改寫 /usr/bin/su 拿 root

一句話總結

Linux 內核 DirtyClone(CVE-2026-43503)允許本地用戶提權到 root,攻擊不留任何日誌。立即升級到 7.1-rc5 或更高。

Linux 內核 DirtyClone 爆雷|不留任何日誌的本地提權,直接改寫 /usr/bin/su 拿 root

JFrog Security Research 於 6 月 26 日公開拆解 Linux 內核高危漏洞 DirtyClone(CVE-2026-43503)——CVSS 8.8,攻擊面命中 Debian、Ubuntu、Fedora 三大主流發行版,任何拿到本地 shell 的低權限用戶都可以提權到 root,而且 不留 kernel log、不留 audit 記錄。漏洞同時被 JFrog(5 月 19 日)與 Hyunwoo Kim(5 月 16 日上游報告)獨立發現,補丁 5 月 21 日合入主線(commit 48f6a5356a33),首個修復版本是 Linux v7.1-rc5

技術根因藏在 skb(socket buffer)的一個元數據 flag 裡。漏洞函數 `__pskb_copy_fclone()` 在克隆網絡包時丟掉了 `SKBFL_SHARED_FRAG` 標記——這個 flag 原本是上一輪 DirtyFrag 漏洞修復時引入的安全閘門,作用是告訴 IPsec 子系統「這個緩衝區指向 file-backed 內存,請走 copy-on-write 別原地改」。flag 一丟,IPsec 的 `esp_input` 在做就地解密時,會把 page cache 裡的文件數據當網絡包覆蓋掉——同一塊物理內存頁同時被當文件、又被當網絡包用。

攻擊鏈乾淨到反直覺。攻擊者控制 IPsec 的 IV 與 key,等於控制了往 page cache 寫入的字節——目標選 `/usr/bin/su`patch 一小段指令序列繞過認證,從此本地任何用戶 `su` 一下就是 root。整條鏈不觸發任何傳統內核漏洞檢測:沒有 oops、沒有 kallsyms 讀取、沒有 kptr_restrict 繞過,連審計子系統都看不到痕跡——因為攻擊發生在 網絡包解密路徑 上,數據流完全合法。

利用前提的門檻同樣低。攻擊者只需要 CAP_NET_ADMIN 能力,而這個能力在 啟用 unprivileged user namespaces 的發行版上,任何本地用戶都能通過 namespace 自助拿到。Debian 與 Fedora 默認開啟,默認易受攻擊;Ubuntu 24.04+ 因為 AppArmor 限制 unprivileged userns 算 部分緩解——但「部分」兩個字在生產環境不夠用。

JFrog 給的原話最戳:「同一塊物理內存頁同時被當作文件數據(page cache)與網絡包數據(skb)使用」——這是 DirtyCow(2016)以來,page cache內核網絡 / 加密子系統 第二次在同一個 race 上撞車。DirtyFrag、DirtyPipe、DirtyCred、DirtyCOW、現在 DirtyClone——「Dirty 家族」近十年第五個利用 page cache 與內核子系統共享內存做提權的漏洞。

行動指令:
- 內核立即升 v7.1-rc5 及以上,或拉發行版的反向移植補丁
- 暫時不能升內核的,`sysctl -w kernel.unprivileged_userns_clone=0` 關 unprivileged user namespaces
- 不用 IPsec 的機器,`modprobe -r esp4 esp6 rxrpc` 或加入黑名單
- 容器密集場景(k8s、docker host)優先級拉滿——unprivileged userns 是雲原生的默認假設,這次直接被打穿

PoC 目前 JFrog 內部已驗證、未公開——但補丁早已合入主線一個月,攻擊代碼從 git diff 反推不困難。下半年大概率出公開 exploit

via JFrog Research / The Hacker News / Cybersecurity News / Linuxiac / Red Secure Tech
Linux 內核 DirtyClone 爆雷|不留任何日誌的本地提權,直接改寫 /usr/bin/su 拿 root