FreeBSD 的 AI 审计
摘要
一次 AI 辅助的安全审计揭示了 FreeBSD 内核中的 15 个漏洞,包括权限提升和虚拟机逃逸,并详细描述了与 FreeBSD 团队协作报告和修补漏洞的过程。
<p><a href="https://lobste.rs/s/kdninn/ai_audit_freebsd">评论</a></p>
查看缓存全文
缓存时间: 2026/05/29 05:52
# FreeBSD 的 AI 审计
来源:https://blog.calif.io/p/an-ai-audit-of-freebsd
自从我们发起这场用 AI 入侵互联网的活动(https://blog.calif.io/t/madbugs),我们了解到许多你们早已知道的事情:互联网依赖志愿者运行。那些对互联网安全和文化至关重要的项目,仅仅由极小的团队维护,有时甚至只有一个人。例如,保护互联网上几乎所有远程 shell 的 OpenSSH,由一个以一位澳大利亚人为核心的小团队维护(你好 Damien!)。
我们感觉欠这些维护者一些东西。没有互联网及其上运行的开源软件,我们无法学到今天所知的、交到这些朋友、拥有如今的职业生涯。因此,我们决定将我们的专家和 AI 与那些需要帮助的开源项目结合起来。FreeBSD 是我们的起点。
3 月底,我们发布了第一个 AI 辅助的 FreeBSD 远程内核漏洞利用(https://github.com/califio/publications/tree/main/MADBugs/CVE-2026-4747)。本月早些时候,我们报告了一个 exeCVE 中的 CVE(https://github.com/califio/publications/tree/main/MADBugs/freebsd-CVE-2026-7270)。我们还报告了一个不常用模块中的 3 个 RCE。看到团队捉襟见肘,我们认为不应该仅仅增加他们的负担,而是尝试提供更多帮助,于是主动联系了他们。团队告诉我们应重点关注的方向,然后我们让 AI 全速运转。
在那项工作的最初几周内,审计发现了更多漏洞:
- **5 个本地权限提升漏洞**
- **1 个 bhyve 客户机到主机逃逸漏洞**
- **若干信息泄露和拒绝服务漏洞**
总计,我们报告了 15 个漏洞。全部位于内核中。我们还将用于发现其中部分漏洞的审计技能分享给了团队。
本文讲述我们是如何做到的。
当我们与 FreeBSD 团队坐下来交谈时,双方达成两点共识:
1. 让在 FreeBSD 中发现漏洞的成本更高。
2. 帮助 FreeBSD 团队在我们离开后能够发现、消除并预防更多漏洞。
我们并非追逐 CVE 数量或发布漏洞计数。我们只想对那些运营项目的人有所助益。
像 FreeBSD 这样广泛使用的开源项目的维护者,被大量报告淹没,他们的注意力是整个事业中最珍贵的资源。有用性的首要规则就是不要浪费这份注意力。我们归纳出了以下几点:
**仅发送高危或严重漏洞。** 我们对外报告时,只针对我们认为的高危或严重漏洞。有时我们认为的高危漏洞在维护者仔细检查后会降级,对此我们基本遵循他们的评分标准,而非争论。
**保持报告简短。** 每个人都喜欢简短的报告。一行描述加上一个 PoC,远胜过十五页冗长的分析。如果后续有人要求,再提供深入分析。
**建议补丁,但不强求。** 有些维护者乐于接受建议的补丁,有些则更喜欢自己编写修复。我们默认在报告中包含补丁,并明确标注为建议,这样维护者可以采用、修改或忽略,而无需来回沟通。
**花时间与人相处。** 电子邮件和工单是必要的,但早期的视频通话对工作关系的促进比任何精心制作的议题模板都更有效。在与 FreeBSD 团队首次会面后,我们建立了直接的沟通渠道,此后我们报告的许多漏洞从报告到修复只用了几天时间。
FreeBSD 是我们首个公开撰写的此类合作项目,但并非唯一。类似的工作已经与维持互联网运转的其他项目同步开展,我们计划在这些努力成熟后分享更多内容。
MAD Bugs 文章必须包含一些漏洞溢出。今天,我们发布其中三个 LPE 漏洞的利用代码和分析报告:
**setcred(CVE-2026-45250)(https://github.com/califio/publications/tree/main/MADBugs/freebsd/setcred-CVE-2026-45250)**:`kern_setcred_copyin_supp_groups` 中一个单字符的 `sizeof` 混淆导致 `user_setcred` 框架栈溢出,进而获得本地 root shell。尽管相同的源码漏洞也存在于 14.3 和 15.0,但仅 FreeBSD 14.4 可利用。
setcred 演示(https://substackcdn.com/image/fetch/$s_!A1YO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4752bb36-add9-4b6d-8715-e6adbe50052d_3024x1434.gif)
**ptrace(CVE-2026-45253)(https://github.com/califio/publications/tree/main/MADBugs/freebsd/ptrace-CVE-2026-45253)**:`ptrace(PT_SC_REMOTE)` 跳过了对重定向系统调用号的边界检查,导致对 sysent 表的越界索引,我们将其链入 LPE。
ptrace 演示(https://substackcdn.com/image/fetch/$s_!GOcb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c685740-5c39-4070-a9f8-8b60317c02c8_3024x1410.gif)
**procdesc(CVE-2026-45251)(https://github.com/califio/publications/tree/main/MADBugs/freebsd/file-CVE-2026-45251)**:`procdesc_free()` 释放了一个包含嵌入式 `pd_selinfo` 的 `struct procdesc`,但未清空 poll 等待者。我们通过 `SCM_RIGHTS` 文件描述符回收该槽位,触发两次过时的 `TAILQ_REMOVE`,从而获得任意内核指针写入。
procdesc 演示(https://substackcdn.com/image/fetch/$s_!gh0q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8aaa7a8-445f-44c9-b055-b031b9f0b694_3024x1410.gif)
这些漏洞利用和分析报告均由 AI 编写。我们决定保留 AI 的原始文本,作为历史记录,展示 2026 年 AI 漏洞研究的面貌。而漏洞利用代码则全部经过我们验证,且确实有效。通过发布它们,我们希望更多人能从中学习这些技术,为 FreeBSD 带来更多帮助。审计中发现的其余漏洞将在 FreeBSD 团队推送修复后发布。
对于感兴趣的读者,仓库(https://github.com/califio/publications/tree/main/MADBugs/freebsd)中还包含一些额外的漏洞利用代码,主要是 AI 根据公开发布的 FreeBSD 安全公告生成的,这些公告当时没有附带可用的 PoC。
感谢 FreeBSD 团队与我们合作,并认真对待这项工作。感谢 OpenAI 和 Anthropic 提供的令牌。更要感谢所有以极少赞誉和极少人力维持互联网运行的维护者:谢谢你们。
#### 关于本篇文章的讨论
### 准备好了吗?
相似文章
AI扫描漏洞引发令人担忧的Linux安全趋势
AI工具正在加速发现并公开披露Linux内核漏洞,形成一种令人担忧的趋势:频繁出现权限提升漏洞,可能需要每周重启服务器。Linus Torvalds改变了Linux安全社区处理AI发现漏洞的方式,默认将其视为公开信息。
他们发现的所有安全漏洞
本文详细介绍了AI代理在Epsilon(一个用Go编写的小型WASM运行时)中发现的超过20个安全漏洞,其中包括多个沙箱逃逸漏洞,允许恶意模块突破隔离。
微软修复了 137 个漏洞,但 Azure AI Foundry 的那个最引人注目
微软修复了 137 个漏洞,其中 Azure AI Foundry 中一个值得注意的高严重性权限提升修复突显了 AI 应用基础设施层的安全风险。
@_mattata: Anthropic 发布了一个相当简洁的代码审计工具,用于识别具有潜在安全影响的漏洞。它…
Anthropic 发布了一个开源代码审计参考工具,用于使用 Claude 进行自主漏洞发现和修复,涵盖了 recon→find→triage→report→patch 流程,主要针对 C/C++ 内存漏洞。它是一个模板/参考实现,而非生产就绪产品,同时还提供名为 Claude Security 的托管选项。
CVE-2026-28952:Apple macOS 26.5 内核漏洞由 Claude 发现
Apple 发布了 macOS Tahoe 26.5 的安全更新,修复了多个漏洞,包括内核错误、拒绝服务攻击和沙盒逃逸。该更新修复了由不同研究人员发现的多个 CVE 漏洞,其中 CVE-2026-28952 据称由 Claude AI 发现。