AI成功找到Linux安全漏洞,還是內(nèi)核級別的零日漏洞。
剛剛,OpenAI總裁轉(zhuǎn)發(fā)了獨立研究員Seen Heelan的實驗成果:用o3模型找到了Linux內(nèi)核SMB實現(xiàn)中的一個遠程零日漏洞。
更讓人驚訝的是,整個過程中沒有用到任何復(fù)雜的工具——沒有腳手架、沒有智能體框架、沒有工具調(diào)用,僅僅是o3 API本身。
這個漏洞被編號為CVE-2025-37899,是SMB”注銷”命令處理程序中的一個釋放后使用(use-after-free)漏洞。
據(jù)作者透露,這是首次公開討論的由大模型發(fā)現(xiàn)的此類漏洞。
有網(wǎng)友看過發(fā)現(xiàn)過程后感嘆,原以為會有很瘋狂的實驗設(shè)置,但其實只是把一堆代碼縫到一起,讓o3檢查100次。
希望其他白帽黑客已經(jīng)開始像這樣檢查其他關(guān)鍵操作系統(tǒng)了。
OpenAI首席研究官Mark Chen表示:像o3這樣的推理模型正開始助力深度技術(shù)工作和有意義的科學(xué)發(fā)現(xiàn)。接下來一年,類似這樣的成果將會越來越普遍:
AI不僅找到漏洞,還能輔助修復(fù)
Sean Heelan是一位獨立研究員,專注于基于大模型的漏洞研究和漏洞利用自動化生成。
他原本在手動檢查Linux內(nèi)核的KSMBD(內(nèi)核態(tài)SMB3協(xié)議實現(xiàn))漏洞,想要暫時遠離大模型相關(guān)的工具開發(fā)。
但o3發(fā)布后,他忍不住想測試一下:”既然我手里已經(jīng)有這些漏洞,不如看看o3能不能找到它們?”
他先用一個自己手動發(fā)現(xiàn)的漏洞CVE-2025-37778作為測試。這是Kerberos認(rèn)證路徑中的一個釋放后使用漏洞,是測試大模型能力很好的基準(zhǔn),因為:
接下來開始實驗之前,還需要搞清楚一個問題,該給大模型展示哪些代碼?
理想情況當(dāng)然是大模型讀取整個代碼庫并輸出結(jié)果,但實踐中上由于上下文窗口的限制還無法事先。
最終Heelan為 LLM 提供了“會話設(shè)置”命令處理程序的代碼,包括它調(diào)用的所有函數(shù)的代碼等等,直到調(diào)用深度達到3(這是包含推理漏洞所需代碼所需的深度),還包含了命令處理器、連接建立/拆除、請求分發(fā)等完整上下文。
提示詞中告訴o3專門尋找use-after-free漏洞,提供KSMBD架構(gòu)說明,強調(diào)要避免誤報,每個實驗運行100次,統(tǒng)計成功率。
相關(guān)代碼和提示詞已開源在GitHub上。
Heelan還按同樣流程測試了Claude3.7和Claude 3.5作為對比,結(jié)果o3的表現(xiàn)讓人眼前一亮:
此外有意思的的是,o3和Claude的輸出風(fēng)格完全不同。
o3生成的像人類寫的漏洞報告,結(jié)構(gòu)清晰、重點突出
Claude更像思維流或工作日志,細(xì)節(jié)豐富但略顯冗長。
接下來發(fā)生的事情更精彩了。
Heelan想測試o3在更大代碼量下的表現(xiàn),于是給它提供了所有SMB命令處理程序的代碼,約12000行代碼。
雖然找到原始漏洞的成功率降到了1%,性能明顯下降。但在運行結(jié)果中,o3報告了一個全新的漏洞。
Heelan自己之前也不知道這個漏洞,它同樣是由于sess->user的釋放造成的,但這次是在會話注銷處理程序中。
o3自己對這個漏洞的解釋如下。
當(dāng)一個ksmbd工作線程還在執(zhí)行使用sess->user的請求時,另一個處理同一會話SMB2 LOGOFF的線程釋放了該結(jié)構(gòu)。沒有同步機制保護該指針,所以第一個線程會解引用已釋放的內(nèi)存——這是一個經(jīng)典的釋放后使用漏洞,會導(dǎo)致內(nèi)核內(nèi)存損壞和任意代碼執(zhí)行。
更有意思的是,研究員發(fā)現(xiàn)o3不僅能找到漏洞,某些情況下修復(fù)方案比人類更完善。
對于之前的Kerberos認(rèn)證漏洞,Heelan最初提出的修復(fù)是簡單地將指針置空:
if (sess->state == SMB2_SESSION_VALID) {
ksmbd_free_user(sess->user);
sess->user = NULL; // 添加這行
}
但o3的報告中有指出這個修復(fù)不夠充分,因為SMB協(xié)議允許兩個不同的連接”綁定”到同一個會話,在釋放和置空之間的短暫窗口期,另一個線程仍可能訪問這個指針。
最終Heelan承認(rèn),如果使用o3來找和修復(fù)原始漏洞,“理論上”會比自己完成更好。
之所以加上“理論上”的限定,是因為現(xiàn)在AI誤報的比例有點高,人類很難認(rèn)真仔細(xì)地查看o3的每份報告。
不過他也認(rèn)為隨著技術(shù)的發(fā)展,這個比例只會越來越低。
Heelan在報告結(jié)尾感慨道:
大模型在程序分析技術(shù)的能力空間中,處于一個比我們見過的任何東西都更接近人類的位置。考慮到創(chuàng)造力、靈活性和通用性,LLM更像是人類代碼審計員,而不是符號執(zhí)行、抽象解釋或模糊測試。
他特別強調(diào),如果你從事安全研究工作,現(xiàn)在應(yīng)該開始密切關(guān)注了:
不過也有人看到了其中的風(fēng)險:
如果壞人利用AI的能力找到類似的漏洞并攻擊系統(tǒng)又如何呢?