跳到正文
Calif:Research(AI 漏洞研究)·· 4 小時前精選AI 評分79

Calif 以 AI 審計 FreeBSD,發現 15 個核心漏洞

An AI audit of FreeBSD

AI 導讀

Calif 團隊與 AI 合作審計 FreeBSD,報告 15 個核心漏洞,包括 3 個遠端程式碼執行(RCE)漏洞、5 個本地權限提升(LPE)漏洞及 1 個 bhyve guest-to-host 逃逸漏洞。

推薦理由

文章具體交代與維護者協作的做法,包括只提交高危或嚴重漏洞、精簡報告及附上可選修補建議,呈現這類安全研究如何配合開源項目的維護流程。

正文 · 繁體中文

15 個核心漏洞,包括 3 個 RCE、5 個 LPE,以及 1 個 bhyve 逃逸漏洞。

自從我們開始這項用 AI 駭入互聯網的行動以來,我們瞭解到一件你們當中很多人早已知道的事:互聯網由志願者支撐。對互聯網安全和文化至關重要的項目,往往只由一小羣人負責,有時甚至只有一個人。OpenSSH 幾乎保護着互聯網上所有遠端 shell,由一支小型團隊維護,並由一位澳洲人領導(Damien,你好!)。

我們覺得應該為這些維護者做點事。沒有互聯網,以及支撐互聯網運作的開源軟件,我們便無法學到所學的知識、結識現在的朋友,也不會有今天的事業。因此,我們決定讓專家和 AI 協助有需要的開源項目。FreeBSD 是我們的起點。

3 月底,我們發布了首個由 AI 協助的 FreeBSD 遠端核心漏洞利用程式。本月較早時,我們回報了exeCVE 中的一個 CVE。我們亦在一個鮮少使用的模組中回報了 3 個 RCE。眼見團隊人手緊絀,我們認為應該嘗試提供更多協助,而不只是增加待處理事項,於是主動聯絡他們。團隊告訴我們應該集中處理哪些方面,我們便讓 AI 全速運作。

這項工作的首幾星期內,審計便發現了更多漏洞:

  • 5 個本機權限提升漏洞
  • 1 個 bhyve 客體至主機逃逸漏洞
  • 少量記憶體資訊洩漏及 DoS 漏洞

我們總共回報了 15 個漏洞,全部都是核心漏洞。我們亦與團隊分享了用來找出其中部分漏洞的審計技能。

這篇文章會講述我們如何做到這一點。

我們希望達成的目標

與 FreeBSD 團隊會面時,我們就兩件事達成共識:

  1. 提高在 FreeBSD 中尋找漏洞的成本。
  2. 在我們不再參與後,協助 FreeBSD 團隊找出、消除並預防更多漏洞。

我們並非要追逐 CVE 數字或發布漏洞數量,只是希望能幫助負責維護項目的人。

我們的工作方式

FreeBSD 這類廣泛使用的開源項目,其維護者往往被大量報告淹沒,而他們的注意力是整項工作中最寶貴的資源。要提供實際幫助,首要原則就是不要浪費他們的時間。我們逐漸歸納出幾項做法:

只回報高危或嚴重漏洞。我們只會提交我們認為屬於高危或嚴重級別的漏洞報告。有時,我們認為屬於高危的漏洞,維護者仔細檢查後會下調評級;我們通常會採納他們的評分,而不會爭辯。

報告要簡短。人人都喜歡簡短的報告。用一行文字概述並附上 PoC,遠勝於寫上十五頁漫無邊際的分析。如果有人提出要求,之後再補上深入分析即可。

提出修補程式,但不要堅持要求採用。有些維護者很樂意收到建議修補程式,有些則較喜歡自行編寫修正。我們預設會在報告中附上修補程式,並清楚標示為建議,讓維護者可以採用、修改或忽略,而毋須來回溝通。

花時間與人交流。電郵和問題追蹤系統上的工單固然必需,但及早進行一次視像通話,對建立合作關係的幫助,勝過任何數量的精心設計問題範本。首次與 FreeBSD 團隊會面後,我們便與他們建立了直接聯絡渠道;此後我們回報的許多漏洞,短短數天內便由回報進展至修復。

FreeBSD 是我們首次公開撰文介紹的此類合作,但並非唯一一個。我們已開始與其他維持互聯網運作的專案進行類似工作,待相關工作逐步成熟後,我們計劃分享更多資訊。

盜版軟件

MAD Bugs 的貼文總得放出一些盜版軟件,所以今天我們公開三個本機權限提升漏洞的利用程式及分析文章:

  • setcred (CVE-2026-45250):kern_setcred_copyin_supp_groups中的單字元sizeof混淆,會在user_setcred的堆疊框架中演變成堆疊溢位,繼而取得本機 root shell。儘管 14.3 和 15.0 也存在相同的原始碼錯誤,只有 FreeBSD 14.4 可被利用。

setcred demo

  • ptrace (CVE-2026-45253):ptrace(PT_SC_REMOTE)略過了對重新導向的系統呼叫編號所作的範圍檢查,導致對 sysent 表進行越界索引;我們再將此漏洞串連成權限提升攻擊。

ptrace demo

  • procdesc (CVE-2026-45251):procdesc_free()會釋放一個含有內嵌pd_selinfo的struct procdesc,但不會先清空 poll 等待者。我們以SCM_RIGHTS filedescents 重新佔用該位置,觸發兩個失效的TAILQ_REMOVE,並取得任意核心指標寫入能力。

procdesc demo

這些漏洞利用程式及分析文章均由 AI 撰寫。我們決定保留 AI 文字原貌,作為歷史資料,展示 2026 年的 AI 漏洞研究面貌。至於漏洞利用程式,則全部經我們驗證,確實可用。我們希望公開這些內容,讓更多人能從相關技術中學習,並為 FreeBSD 提供更多協助。審核發現的其餘錯誤,將在 FreeBSD 團隊推出修補程式後發布。

有興趣的讀者也可查看程式碼庫,其中還有幾個額外的漏洞利用程式,大多由 AI 根據已公開發布、但沒有可用 PoC 的 FreeBSD 安全公告製作。

致謝

感謝 FreeBSD 團隊與我們合作,並認真看待這項工作。感謝 OpenAI 和 Anthropic 提供 token。也感謝所有維持互聯網運作的維護者,雖然獲得的認可甚少、人手亦十分有限:謝謝你們。

程式碼及 PoC →

來源:Calif:Research(AI 漏洞研究) · calif.io