针对 llama.cpp 中未修复漏洞的安全补丁,由 Cyera Research 发现。
在 2025 年 7 月至 2026 年 6 月期间,我们通过 GitHub Security Advisories 和 MITRE 向 llama.cpp 项目报告了 10 个漏洞。所有安全公告均被维护者关闭,既未修复也未分配 CVE。我们于 2026 年 6 月提交了一个包含补丁的公开 PR——该 PR 同样被关闭且未合并。
在厂商和 MITRE 均未采取行动后,VulnCheck 分配了 10 个 CVE ID。其中三个原始 ID(CVE-2026-43623、CVE-2026-43624、CVE-2026-43626)随后分别被 CVE-2026-70638、CVE-2026-70639 和 CVE-2026-70640 取代。
提供这些补丁是为了让用户和下游项目能够保护自身。
| CVE | CVSS | 漏洞 | 受影响文件 | 补丁 |
|---|---|---|---|---|
| CVE-2026-70640 | 7.3 | Android JNI 竞态条件(UAF) | ai_chat.cpp | CVE-2026-70640 |
| CVE-2026-43627 | 8.5 | llama_batch_init() 整数溢出 | llama-batch.cpp | CVE-2026-43627 |
| CVE-2026-43628 | 8.5 | DRY 采样器整数下溢 | llama-sampler.cpp、arg.cpp、server-task.cpp | CVE-2026-43628 |
| CVE-2026-43629 | 9.2 | KV 缓存状态缓冲区溢出 | llama-kv-cache.cpp | CVE-2026-43629 |
| CVE-2026-43631 | 9.2 | 服务器 sleep-idle 释放后使用 | server-context.cpp、server-queue.cpp、server-queue.h | CVE-2026-43631 |
| CVE-2026-43632 | 9.2 | 服务器无限制任务创建 | server-task.cpp、server-queue.cpp | CVE-2026-43632 |
应用单个修复:
cd /path/to/llama.cpp
git apply /path/to/patches/CVE-2026-43631-server-sleep-uaf.patch
一次性应用所有修复:
cd /path/to/llama.cpp
git apply /path/to/patches/all-fixes.patch
如果由于较新版本 llama.cpp 中的上下文变化导致 git apply 失败,请尝试使用 --3way:
git apply --3way /path/to/patches/all-fixes.patch
| 日期 | 事件 |
|---|---|
| 2025 年 7 月 | 通过 GitHub Security Advisory 提交首个漏洞 |
| 2025 年 10 月 | 联系 MITRE 申请 CVE 分配——收到 7 个请求 ID,均未分配 |
| 2026 年 1 月至 5 月 | 又提交了四个安全公告——均被关闭且未修复 |
| 2026 年 5 月 | VulnCheck 分配了 10 个 CVE |
| 2026 年 6 月 | 提交包含补丁的公开 PR——PR 被关闭 |