COPY FAIL(CVE-2026-31431)為Linux權限提升漏洞,攻擊者可污染page cache取得root權限。本文深入分析漏洞成因、PoC驗證與受影響版本,並整理Dirty frag與pedit COW等衍生攻擊的防範修補建議。


“COPY FAIL”是個2026年4月公開的linux kernel漏洞,CVE編號是CVE-2026-31431,且很快速的可以在github上看到許多poc檔案。這個漏洞造成任何普通使用者都可以用極小的程式直接在linux機器上變成最高權限。


之前也寫過關於Dirty Pipe與DirtyCred,這次的標題COPY FAIL也是針對全Linux的權限提升漏洞。顧名思義COPY FAIL是利用錯誤的邏輯權限來觸發記憶體修改,不會被Race condition影響或是需要等待流程失敗而觸發,因此更為穩定。


這個漏洞影響了Ubuntu 24.04 LTS以前的版本、RHEL 10.1以前的版本、Amazon Linux 2023以前的版本、SUSE 16以前的版本,另外也能直接檢查kernel version是否在4.11到7.1且低於7.0、6.19.12或6.18.22。


截至2026.06.09已修補的版本為7.0.5、6.18.28、6.12.87、6.6.138、6.1.171、5.15.205、5.10.255


漏洞主要原因是:

1.核心密碼學authencesn(hmac(sha256),cbc(aes))會把資料寫入暫存資料(scratch write)。

2.AF_ALG(algif_aead.c)+splice()可以讓使用者把page cache寫入加密分散清單。

3.algif_aead.c為了最佳化,改成用sg_chain()引用連結,讓page cache變成可寫入的區域。


將以上原因串聯起來,攻擊者可以利用AF_ALG(algif_aead.c)和splice()把4 bytes資料寫入任何可讀檔案的記憶體版本(page cache),這代表原本的硬碟內容不會被改變,所以檢查抓不到。但是執行時是會直接讀取記憶體內容,造成檔案可以成功執行。


因此攻擊者可以修改有可讀權限具有setuid的binary(例如:/usr/bin/su或/etc/passwd) 來達到root權限,另外還有其他方式像是更改/etc/pam.d/common-auth或sytem-auth。


以這個公開的poc (https://github.com/rootsecdev/cve_2026_31431) 為例:

Script分成兩種一個是detect用的,另一個是exploit用的,在exploit的script中會執行:

1.先找到要修改的帳號,會先看環境變數的user

2.從/etc/passwd裡找到user那一行,並抓取uid的offset,確認是否為四位數字

3.用這個漏洞去把uid用0000(4 bytes)覆蓋掉


去確認是否有覆蓋成功,查看直接抓取user的uid是否為正確的(有可能被快取影響需要重登),假如都成功就代表目前帳號的uid=0也就是root權限。


COPY FAIL與Linux漏洞分析

COPY FAIL與Linux漏洞分析

COPY FAIL與Linux漏洞分析


緩解方式可以禁用algif_aead或是限制使用AF_ALG,目前開著自動安全性修補或是使用最小安裝方式的linux機器應該就會禁用algif,可以下指令lsmod | grep algif測試看看是否有使用。


之後一周,在五月初衍生出了Dirty frag(CVE-2026-43284)與Fragnesia(CVE-2026-46300),一樣不需要依靠競爭條件。


Dirty frag利用了兩種模組,xfrm-ESP的page cache write 是類似copy file的方式儲存4bytes (需要create a namespace privilege )(CAP_NET_ADMIN權限),以及利用rxrpc的page cache write 是類似Dirty pipe的方式寫入標註唯獨的page cache。


而Fragnesia是利用Dirty frag修補後沒修補好的漏洞,原先只修補了ESP-in-UDP,這個漏洞是從ESP-in-TCP下手,來對唯獨page cache寫入。


到5/19又出現了類似攻擊叫做DirtyClone(CVE-2026-43503),詳細可看JFrog的技術分析,在執行__pskb_copy_fclone()時遺失了為了Dirty Frag漏洞修補而放的保護flag,搭配IPsec能達到複寫page cache。


一直到6/16再度出現類似攻擊pedit COW(CVE-2026-46331),tc pedit在執行時有部分未受COW保護的區域被越界寫入,造成page cache汙染。


請再次檢查linux主機是否有更新目前最新版本,減緩方式都是先停用目標服務,但最終patch方式都是更新kernel,更新後記得重新開機才會套用新kernel。

有任何資安問題,歡迎隨時與NEITHNET團隊聯繫!

參考資料:

1、https://xint.io/blog/copy-fail-linux-distributions

2、https://github.com/rootsecdev/cve_2026_31431

3、https://github.com/diemoeve/copyfail-rs             

4、https://github.com/v4bel/dirtyfrag

5、https://research.jfrog.com/post/dissecting-and-exploiting-linux-lpe-variant-dirtyclone-cve-2026-43503/

6、https://thehackernews.com/2026/06/new-linux-pedit-cow-exploit-enables.html