2026 年 3 月 26 日,FreeBSD 项目发布安全公告 FreeBSD-SA-26:08,披露了 RPCSEC_GSS 实现中的栈溢出漏洞(CVE-2026-4747),该漏洞可导致远程内核代码执行,CVSS 评分高达 9.8。值得注意的是,漏洞发现者被标注为「Nicholas Carlini using Claude, Anthropic」—— 这是首例由 AI 代理独立完成完整内核级 RCE 利用开发的高影响力案例。3 月 29 日,研究团队仅用约 8 小时(Claude 实际工作时长约 4 小时)即获得了可稳定获取 root shell 的利用代码。这一事件标志着 AI 在高级利用开发领域的能力边界已发生根本性迁移,安全社区必须重新审视检测与防御策略。
从漏洞公告到 root shell:AI 的六步跨越
传统漏洞利用开发被视为人类安全研究员的专属领域,需要深入理解操作系统内核结构、ROP 链构造、内存布局操控、崩溃调试以及动态适应能力。Claude 在此次任务中展示了完整的问题分解与解决能力,将从漏洞公告到可利用代码的转化过程分解为六个独立的技术挑战。
首先是实验环境搭建。Claude 自主建议并配置了具备多核处理器的 FreeBSD 虚拟机,部署了 NFS、Kerberos 以及存在漏洞的内核模块。它特别指出 FreeBSD 会在每个 CPU 上生成 8 个 NFS 线程,而利用过程需要 kill 线程因此需要 2+ CPU 配置。同时配置了远程调试能力以读取内核崩溃转储。
其次是_multi-packet delivery_策略。由于 shellcode 无法在单个网络数据包中完整传输,Claude 设计了 15 轮交互方案:首先使内核内存可执行,然后每轮写入 32 字节 shellcode,跨越 14 个数据包完成完整载荷投递。另一种未公开的变体则使用写入 SSH 公钥的策略,将利用轮次压缩至 6 轮。
第三个挑战是_clean thread exit_。每次溢出都会劫持一个 NFS 内核线程,Claude 使用 kthread_exit() 实现线程的干净退出,确保服务器保持存活以进行后续轮次的利用。
_offset debugging_阶段,初始从反汇编获取的栈偏移存在偏差。Claude 采用了 De Bruijn 模式生成技术(该术语在查阅前编写报告中从未出现),通过发送已知字节序列并分析崩溃转储来精确修正偏移量。
_kernel-to-userland transition_是技术复杂度最高的一步。NFS 内核线程无法直接运行用户态程序。Claude 创建新进程使用 kproc_create(),通过 kern_execve() 将其替换为 /bin/sh,并清除 P_KPROC 标志以实现从内核态到用户态的转换。
最后一个障碍是_hardware breakpoint bug_。子进程持续因调试异常崩溃。Claude 追踪到问题源于从 DDB 调试器继承的过时调试寄存器,通过在 fork 前清除 DR7 解决了该问题。
防御侧的技术启示
FreeBSD 14.x 缺乏现代 Linux 内核的多项安全缓解机制:无 KASLR(内核地址空间布局随机化)、整型数组无栈保护符(溢出的缓冲区类型为 int32_t[]),这显著降低了漏洞利用的门槛。然而即使在具备更强安全基线的系统上,AI 辅助利用开发的能力演进仍值得高度关注。
在检测层面,建议关注以下监控参数。首先是 RPCSEC_GSS 相关的内核错误日志,特别是 kgssapi.ko 模块产生的异常崩溃和栈回溯信息。其次是 NFS 服务进程的健康状态 ——CVE-2026-4747 的利用会导致内核线程异常终止,生产环境中 NFS 服务进程数的突然下降应触发告警。第三是可执行内存变化监控,内核模块动态加载和内核内存权限修改(从不可执行改为可执行)是典型的利用前准备行为,可通过内核审计子系统进行追踪。
在防御架构层面,核心建议包括:尽快应用 FreeBSD 官方发布的补丁(FreeBSD-SA-26:08);若无法立即升级,应限制 RPCSEC_GSS 服务的网络暴露范围,将其置于 VPN 或专用网络段后方;启用 FreeBSD 的安全等级(securelevel)或启用 UEFIP 固件层面的 Secure Boot 以限制内核模块加载;对于 AI 代码生成工具的使用场景,建议在隔离的沙箱环境中运行,限制网络访问权限,并在关键系统上禁用 AI 代理的直接操作能力。
这一案例揭示的核心趋势是:AI 不仅能发现漏洞,还能独立完成此前需要资深安全研究员数周工作才能实现的完整利用开发。防御侧的响应速度与架构弹性将决定在未来安全对抗中的主动权。
资料来源:FreeBSD 安全公告 FreeBSD-SA-26:08(2026-03-26);Calif 技术博客《MAD Bugs: Claude Wrote a Full FreeBSD Remote Kernel RCE with Root Shell》(2026-03-31)。