跳到正文
AI NEWS JOURNAL
llama.cpp releasesAI NEWS / JOURNAL

llama.cpp 发布 b11871 版本:新增 JSON 嵌套深度限制以防止服务崩溃

llama.cpp 在 b11871 版本中引入关键安全修复,对请求中 JSON 嵌套层级实施 128 层硬性限制,避免因深度递归解析导致 HTTP 线程栈溢出、服务崩溃(macOS 触发 SIGBUS,Linux 触发 SIGSEGV)。该策略覆盖 chat 接口多类输入场景,并统一返回 HTTP 400 错误。

llama.cpp 于公开版本标签 b11871 中合并 PR #30242,正式引入对 JSON 请求嵌套深度的主动防护机制:在递归解析前预检嵌套层级,一旦超过 128 层即拒绝处理并返回 HTTP 400 Bad Request。此举旨在防止因恶意或异常深度嵌套 JSON(如超长工具 schema)引发栈溢出——在 macOS 上数百层即可触发 SIGBUS,在 Linux 上约万层可致 SIGSEGV,最终导致 llama-server 进程崩溃。

该限制覆盖多个关键路径:chat 接口中的 tools 定义、tool-call 参数、chat_template_kwargs 及 json_schema 字段;/completion 接口的 json_schema 参数;以及整个 /v1/systemone 请求体。值得注意的是,对于 Gemma-4 模型生成的过深 tool result,系统将退化为纯文本输出,不参与深度解析。项目强调此为‘根因修复’(fix the root, not the call side),而非仅在调用端做防御。

b11871 版本同步提供全平台二进制分发包,包括 macOS(Apple Silicon / Intel)、iOS、Linux(Ubuntu 多架构及 Vulkan/CUDA/ROCm/OpenVINO/SYCL/Snapdragon 后端)、Android(arm64 及 Snapdragon)、Windows(x64/arm64,支持 CUDA 12.4/13.4、Vulkan、OpenCL、OpenVINO、SYCL、ROCm 10.0)等;openEuler 构建当前标记为 DISABLED。所有变更均源自 GitHub 仓库 ggml-org/llama.cpp,发布信息以原始 tag 页面为准。

资料来源

llama.cpp releases
← 继续阅读全部动态