2026 年 6 月第一周,Linux 內(nèi)核社區(qū)做了兩件事:廢止 AF_ALG 加密接口,砍掉 vmsplice() 零拷貝通道。
這兩個(gè)東西被砍掉的理由非常一致:沒人用,且漏洞太多,維護(hù)者修不過來了。至于為什么沒人用的東西拖了這么多年才砍掉?你別問,問就是因?yàn)楝F(xiàn)在 AI 發(fā)現(xiàn)漏洞的效率實(shí)在是太高了。
![]()
兩筆陳年技術(shù)債
AF_ALG 早在兩個(gè)月前就爆出了一個(gè)致命漏洞。4 月底,CVE-2026-31431 公開,它有個(gè)更直白的名字叫 Copy Fail。專屬網(wǎng)站 copy.fail 上提供一小段 Python 腳本,跑完就能在絕大多數(shù) Linux 發(fā)行版拿到 root 權(quán)限,CVSS 評(píng)分 7.8,本地提權(quán),從 2017 年延續(xù)至今,整整 9 年。
漏洞原理就不展開說了,這個(gè)漏洞發(fā)現(xiàn)的過程很符合當(dāng)下流行的趨勢:一個(gè)安全研究員用 AI 輔助的 fuzzing 工具,在 AF_ALG 的加密操作路徑里找到了一個(gè) race condition。這個(gè) 9 年來沒人發(fā)現(xiàn)的漏洞,被 AI 很輕易地挖了出來。
最初發(fā)現(xiàn)這個(gè)漏洞時(shí),該加密子系統(tǒng)維護(hù)者 Eric Biggers 先是在 5 月初提交了一份補(bǔ)丁,建議各發(fā)行版考慮直接禁用 AF_ALG。直到最近,他決定把整個(gè)接口廢止,補(bǔ)丁注釋里留下了最后一段話:這不可持續(xù),尤其是在 LLM 加速了漏洞發(fā)現(xiàn)速度的情況下。
AF_ALG 允許用戶空間程序直接調(diào)用內(nèi)核加密引擎,設(shè)計(jì)初衷是避免每個(gè)程序自己實(shí)現(xiàn)加密。但整個(gè) Linux 生態(tài)里只有 libkcapi、OpenAF_ALG 以及 cryptosetup 的少部分場景在用。用戶空間加密方案(OpenSSL、libsodium)在性能和安全性上早就超越了內(nèi)核方案。Biggers 的判斷是遷移剩下不多的用戶,比繼續(xù)修 AF_ALG 的漏洞更劃算。于是AF_ALG 被打上了 deprecated 標(biāo)簽,Linux 7.2 起正式生效。
同一周,vmsplice() 的零拷貝通道被移除。
vmsplice() 支持一種零拷貝模式,即用戶空間可以把內(nèi)存頁直接交給內(nèi)核,跳過數(shù)據(jù)拷貝。維護(hù)者 David Hildenbrand 決定關(guān)掉它,理由和 AF_ALG 一樣:除了 libkcapi,全 Linux 生態(tài)幾乎沒人在用。而零拷貝模式天然容易觸發(fā) TOCTOU 競態(tài)條件,允許用戶空間在內(nèi)核加密操作期間并發(fā)修改同一塊內(nèi)存,修一個(gè)冒一個(gè)。
Hildenbrand 在 LKML 上寫得更直接:有用戶,但只有 libkcapi 在用,不值得為一套幾乎沒人用的特性扛持續(xù)的漏洞修復(fù)成本。
AI 做了多年沒人做的事
Copy Fail 在 AF_ALG 里潛伏了 9 年,維護(hù)者不是不知道這個(gè)接口有漏洞風(fēng)險(xiǎn),只是沒有人有精力把每一個(gè)冷門系統(tǒng)調(diào)用的每一行代碼都審一遍。Linux 內(nèi)核近 4000 萬行代碼,活躍維護(hù)者不過百人。
而 AI 改變了這個(gè)情況,一個(gè)搭載 LLM 輔助分析能力的 fuzzing 工具,可以在幾小時(shí)內(nèi)掃完一個(gè)接口的所有執(zhí)行路徑,把人類安全專家需要幾周才能找到的競態(tài)條件標(biāo)記出來。
這也改變了內(nèi)核社區(qū)做清理決策的方式,以前砍接口的決策鏈很長,報(bào)漏洞→修→再報(bào)→再修,反復(fù)多次后才開始討論“這東西還有必要留著嗎”。而 AF_ALG 的漏洞從被發(fā)現(xiàn)到整個(gè)接口宣布廢止,全流程還不到一個(gè)月。
內(nèi)核社區(qū)過去的行為邏輯是“不壞不修”,現(xiàn)在變成了“用的人不多,修不起,直接砍”。AI 沒有替人做決策,而是把找到漏洞的速度提高了幾個(gè)數(shù)量級(jí),逼著維護(hù)者在更短時(shí)間內(nèi)面對(duì)一直逃避的問題 —— 這筆技術(shù)債值不值得繼續(xù)還。
工具的兩面性
過去幾年,開源社區(qū)面對(duì) AI 的主流敘事是“防御”。Zig 完全禁止 AI 貢獻(xiàn),Rust 也在制定 LLM 禁用政策,Ghostty 對(duì) AI 生成代碼零容忍……低質(zhì)量的 vibe-coded PR 確實(shí)給維護(hù)者們帶來了額外的審核壓力。
但 AI 在漏洞審計(jì)方面帶來的效率提升確實(shí)是前所未有的,一個(gè)資深開發(fā)者需要幾周才能完成的競態(tài)條件審計(jì),LLM 加持的工具幾小時(shí)就能完成初步掃描。Copy Fail 被挖出來時(shí)是“發(fā)現(xiàn)”,如果它是在被攻擊利用之后才被發(fā)現(xiàn),就是“事故”,AI 把發(fā)現(xiàn)漏洞的時(shí)間差縮短到了對(duì)防守方有利的區(qū)間。
內(nèi)核社區(qū)的兩位子維護(hù)者 Biggers 和 Hildenbrand 都沒有選“先修漏洞、再做長遠(yuǎn)考慮”的路線,直接快進(jìn)到了砍掉整個(gè)接口,這種果斷在 AI 大規(guī)模介入審計(jì)前不太可能出現(xiàn)。當(dāng)然也不能說是以前的維護(hù)者不夠果斷,只是當(dāng)時(shí)缺少支撐“這東西到底多危險(xiǎn)”的判斷依據(jù),如今的 AI 補(bǔ)上了這個(gè)缺口。
Linux 內(nèi)核 3000 萬行代碼,AF_ALG 是第一個(gè)被 AI 加速淘汰的接口,顯然不會(huì)是最后一個(gè)。內(nèi)核里功能小眾、仍存在漏洞的接口有多少?沒人能精確統(tǒng)計(jì),但 AI 正在逐個(gè)把它們挖出來,幫內(nèi)核社區(qū)甩掉那些早就該甩掉的歷史包袱。
參考來源
Phoronix: Linux 7.2 Proceeding To Deprecate AF_ALG Due To “Massive Attack Surface”- https://www.phoronix.com/news/Linux-AF_ALG-Deprecation
Phoronix: Linux AF_ALG Crypto Code Removing Zero-Copy Support- https://www.phoronix.com/news/Linux-AF-ALF-Zero-Copy-Security
LKML: Eric Biggers — Re: [PATCH] crypto: af_alg — Document the deprecation- https://lkml.org/lkml/2026/5/11/2668
LKML: David Hildenbrand — Re: [PATCH 0/3] vmsplice: make vmsplice a no-op- https://lkml.org/lkml/2026/6/2/2031
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.