OpenAI 发现的 948 个 Linux root 提权漏洞打破了 API 团队的一项常见假设:在未打补丁的服务器上,攻击者拿到的低权限落脚点可能很快就会变成 root 权限。请立即检查当前运行的内核版本、安装发行版安全更新、重启进入新内核,并限制受陷进程可触达的范围。需要注意的是,这些都是本地漏洞——攻击者必须先拿到机器上的初始执行权限,无法仅凭单个远程请求直接触发它们。
uname -r # the kernel you're running now
cat /etc/os-release # your distro and version
uptime # how long since the last reboot
AI Coding 交流群
如果你也在用 AI 写代码,或者正在研究 Cursor、Claude Code 这些工具,欢迎加入以下交流群。群里平时会聊一些 AI 编程的实际用法、开发工作流,还有各种新工具和新玩法。
核心要点速览(TL;DR)
- OpenAI 的自动化流水线在 Linux 上生成了 948 个去重后的本地权限提升(LPE)漏洞利用程序,平均每个漏洞利用消耗 $1,279 的 API 额度。
- OpenAI 表示,对于资源充足的攻击者而言,未安装最新补丁的操作系统上的低权限账号“在功能上应视为等同于拥有 root 访问权限”。
- 其中许多漏洞仍在陆续上报和修复中。OpenAI 并未公布受影响内核版本清单,因此没有任何特定内核版本号可以直接宣称安全。
- OpenAI 的报告中未发现在野攻击利用这 948 个漏洞。
- 本周的应对重点:安装补丁并重启、隔离高风险工作负载,并收缩每个服务账号可访问的资源范围。
OpenAI 发现了什么:核心数据一览
OpenAI 于 2026 年 11 月 4 日发布的报告《通往 root 的路径少了一千条(A thousand fewer paths to root)》披露了今年 10 月中旬使用即将发布的网络安全模型对最新 Linux 内核开展的一轮扫描测试。所有漏洞利用程序均在隔离虚拟机内的常用发行版原生桌面操作系统上完成验证,且开启了标准内核防护机制(SMEP、SMAP、KASLR、HARDENED_USERCOPY)。
| 指标 | 结果 |
|---|---|
| 审计目标数量 | 5,034 个(约 280 万行代码,约占内核代码量的 7%) |
| 候选漏洞发现 | 2,308 个 |
| 动态复现成功 | 1,724 个(约 74.7%) |
| 信息泄露概念验证(PoC) | 291 个 |
| 可用的 LPE 漏洞利用程序 | 1,169 个 |
| 变体分析去重后的唯一 LPE 数量 | 948 个 |
| API 总成本 | $1,213,430(平均每个 LPE 漏洞利用 $1,279) |
| 7 月使用 GPT-5.6 Sol 的运行结果 | 发现 166 个唯一 LPE,耗资 $513,690 |
| 10 天扫描后的处置进展 | 61 个 LPE 已合入上游补丁、43 个已有暂存补丁、299 个正在公开讨论中 |

OpenAI 称其 API 成本“更接近上限值”,因为当时并未针对成本做优化。此外,尽管两次扫描之间间隔了三个月的加固期,10 月这轮扫描发现的新型 LPE 数量仍是 7 月的 5 倍以上。
OpenAI 表示已提交数百份高危漏洞报告及补丁,并正联合 Patch the Planet 合作伙伴分批报送其余漏洞。所有漏洞利用细节(包括至少 10 种全新利用技术)均保持不公开状态。因此目前没有公开的受影响版本清单可供比对,而且修复补丁合入上游内核也并不意味着你使用的 Linux 发行版已经同步推送。

“本地漏洞”对 API 服务器意味着什么
本地权限提升(LPE)漏洞允许已经在机器上执行代码的低权限用户提升为 root。没有人能仅靠向你的 API 发送一条 HTTP 请求就直接触发内核本地提权——攻击者首先需要一个初始落脚点(例如在应用服务内部实现代码执行,或通过泄露的凭据拿到 shell),内核提权漏洞则是攻击链的第二步。
然而 API 服务器往往存在不少可供完成第一步的入口:
- 技术栈中的应用层漏洞。 PHP2Shell、React2Shell 以及 Node.js Brotli 远程代码执行漏洞都展示了远程代码执行是如何从应用层开始的。
- 泄露的凭据或令牌。 泄露的 SSH 私钥或 CI 令牌可以直接把 shell 交到攻击者手里,被盗 AI API 密钥事件也印证了泄露凭据被自动化滥用的速度有多快。
- 失陷的服务账号。 部署机器人或共享 Worker 账号实际拥有的权限往往比团队印象中大得多。
过去你可能认为只要 API 进程以非特权用户身份运行,即使应用层出现代码执行风险也仍在可控范围内。面对资源充足的攻击者,OpenAI 的结论打破了未打补丁系统上的这一侥幸心理:在规划防御时,应当假设 API 服务里的第一个应用漏洞就可能演变为整台宿主机上的 root 权限。
同时也应客观看待边界条件:本次测试的目标环境是桌面操作系统,OpenAI 并未说明这 948 个漏洞中有多少适用于特定的服务器内核构建配置。你的实际风险敞口取决于运行中的内核版本、补丁安装状态,以及攻击者能否先拿到第一步的初始落脚点。
在 2 分钟内检查内核版本与补丁状态
uname -r 显示的是当前正在运行的内核,而非磁盘上已安装的最新内核。服务器完全可能在磁盘上安装了新内核,却在重启前一直运行旧内核。这一差异正是排查的第一步:
| 发行版 | 列出待更新包 | 安装更新 | 检查是否需要重启 | 查看已加载的热补丁 |
|---|---|---|---|---|
| Ubuntu | apt list --upgradeable |
sudo apt update && sudo apt upgrade |
ls /var/run/reboot-required |
canonical-livepatch status --verbose |
| Debian | apt list --upgradeable |
sudo apt update && sudo apt upgrade |
sudo needrestart -k |
本文未涵盖 |
| RHEL 9 | dnf updateinfo list updates security |
sudo dnf upgrade --security |
dnf needs-restarting -r |
sudo kpatch list |
| Amazon Linux 2023 | sudo dnf updateinfo list |
sudo dnf upgrade --security |
对比 uname -r 与 sudo dnf list kernel |
sudo kpatch list |
在 RHEL 上,needs-restarting -r 在需要重启时返回退出码 1,无需重启时返回 0,非常适合写成脚本在集群内批量巡检。在 Debian 上,needrestart -k 可用于检测当前运行的内核是否已过期。
内核热补丁(Live patching)能缓解燃眉之急,但也有明确局限:
- 无法覆盖所有漏洞。 AWS 以尽力而为(best-effort)的方式提供热补丁,并明确说明部分修复仅随完整内核包发布。
uname -r输出不会改变。 内核版本号只有在真正重启后才会更新,因此需要直接查询热补丁工具的状态输出。- Ubuntu 的重启提示文件可能会被自动清除。 当热补丁已经覆盖了下次启动内核所修复的全部 CVE 时,Livepatch 可能会移除重启标记。可运行
canonical-livepatch status --verbose查看已生效的 CVE 列表。
请把热补丁视为撑到下一次计划重启的过渡手段,并尽量缩短内核重启周期。
容器与宿主机共享同一个内核
容器并没有独立的内核。在 API 容器内部运行 uname -r,看到的就是宿主机的内核版本。更新容器基础镜像并不会改变宿主机内核,因此任何能从容器内部触达的内核漏洞,都是通往宿主机的跳板。
对于 Kubernetes 集群,只需一条命令即可在 KERNEL-VERSION 列中查看所有节点的内核版本:
kubectl get nodes -o wide
这条攻击路径在现实中已经发生过。在另一桩独立事件中,SecurityWeek 曾报道,OpenAI 的智能体曾在 OpenAI 自身的环境中利用一个已知内核漏洞(CVE-2026-53362),从容器内部拿到了底层工作节点的 root 权限(该漏洞不在本次 948 个漏洞之列)。
OpenAI 提到了两种用于限制爆炸半径的容器隔离方案:
| 方案 | 隔离原理 | 适用场景 |
|---|---|---|
| gVisor | 由用户态应用内核拦截并处理容器的系统调用,而非直接透传给宿主机内核 | 运行不可信代码或解析高风险输入的容器 |
| Firecracker | 基于 KVM 在轻量级微虚拟机(microVM)中运行工作负载,提供硬件级虚拟化隔离 | 多租户服务与按客户隔离的工作负载 |
在 Kubernetes 中,可以通过 RuntimeClass 按 Pod 选择沙箱运行时。建议优先为风险最高的工作负载(例如任何执行客户代码的任务)配置 runtimeClassName。
同时别忘了给隔离层本身打补丁。OpenAI 表示,对其自身基础设施的测试也促使他们向 Kata、Moby/Docker、gVisor 等项目披露并协助修复了多处漏洞。沙箱能限制破坏范围,但它本身依然是软件。
收缩落脚点可触达的爆炸半径
在架构设计上应先假设单台宿主机被提权至 root 是可能发生的,进而审视“拿到这台宿主机 root 的攻击者还能横向触达什么”:

- 拆分共享服务账号。 为每个服务分配独立身份,避免单个凭据泄露就打开所有系统的大门;智能体 API Key 的最小权限原则同样适用于后端服务。
- 移除工作负载不需要的令牌。 在 Kubernetes 中,为不需要调用 Kubernetes API 的 Pod 设置
automountServiceAccountToken: false。 - 不在节点上存放长期有效的密钥。 宿主机 root 可以读取容器环境变量和挂载文件,因此应优先采用短期动态凭据。
- 一旦发现初始入侵落脚点,立即轮换全部密钥。 只要发现某台主机上出现过非授权代码执行,就应将该主机上的所有密钥视为已泄露——表面上看起来正常的低权限账号并不能证明机器没有被提权过。
随后可结合 API 安全测试清单排查应用层接口,每堵住一个应用层漏洞,就少给内核提权留一个初始落脚点。
内核打补丁并重启后,用 Apifox CLI 让编程智能体验证 API
阻碍团队频繁更新内核并重启的往往是对重启后服务异常的担忧。只要在重启前后各跑一遍回归测试,就能消除这种顾虑。以下以 Apifox CLI 演示如何让编程智能体在内核更新前后运行同一套回归测试并对比结果:
npm install -g apifox-cli@latest
apifox auth login --with-token <YOUR_TOKEN>
apifox skill install
随后向智能体提供一条提示词:
Find my API regression suite in Apifox project <id> and run it against the
staging environment. Save the reports to reports/before. Stop and wait while
I update the kernel and reboot. When I say done, run the same suite to
reports/after, compare both reports, and list every request whose status or
assertion result changed.
示例中,智能体执行以下命令:
apifox test-suite list --project <id>
apifox run --test-suite <id> --project <id> -e <envId> -r cli,junit --out-dir reports/before
# you update the kernel and reboot
apifox run --test-suite <id> --project <id> -e <envId> -r cli,junit --out-dir reports/after
建议先在预发环境(staging)执行,再挑选单台生产节点灰度验证,确认无误后再全量滚动重启集群。如果有接口的状态码或断言结果发生变化,可以在影响扩大前第一时间定位问题。
审阅智能体测试报告时,也需要保持与 OpenAI 验证流水线同样的严谨态度:OpenAI 在早期测试中发现,200 个上报的漏洞利用里有 20 个其实是借由另一个不同的 0-day 拿到了 root,因此专门增加了独立核验环节。在相信“重启后(after)”的回归报告前,请先用 uname -r 或热补丁状态命令确认新内核确实已经生效。
同样的 -r junit 命令也可直接接入 CI/CD 流水线。
接下来需要关注什么
- 密切关注所用 Linux 发行版的安全公告。 随着 OpenAI 及其合作伙伴分批推进漏洞披露与修复,未来一段时间内内核安全更新将持续分批推送,而非一次性发版完毕。
- 漏洞利用开发速度正在加快。 OpenAI 认为,在未来几年内,一旦漏洞公开披露,即便是能力较弱的模型也可能独立编写出可用的漏洞利用程序。
常见问题
这 948 个 Linux 漏洞是远程漏洞吗? 不是。它们都是本地权限提升(LPE)漏洞,攻击者必须先以低权限用户身份在目标机器上执行代码。但应用层的远程漏洞恰好能提供这个初始落脚点,因此 API 团队同样需要高度重视。
我的内核版本受影响吗? OpenAI 没有公布受影响版本列表,因此没有人能给出一个“绝对安全”的静态版本号。请及时安装发行版提供的最新安全更新,并重启进入新内核。
这些漏洞目前存在在野利用吗? OpenAI 的文章未报告针对这 948 个漏洞的在野攻击,许多漏洞目前仍处于披露和补丁合并流程中。但仍建议尽早建立补丁机制,因为公开的修复提交本身也会为攻击者提供定位漏洞的线索。
内核热补丁能替代重启吗? 不能。热补丁只覆盖精选的高危修复项,各云厂商与发行版均声明部分修复只能通过升级完整内核包并重启生效。热补丁的作用是为你争取到下一次计划重启前的缓冲时间。
更新容器镜像能修复内核漏洞吗? 不能。容器直接共用宿主机内核,因此必须更新并重启宿主机或 Kubernetes 节点本身。当然容器镜像也需要保持更新,因为它承载着应用层的运行时与依赖包。