CVE-2025-66960CVE-2025-66960是发现于Ollama v0.12.10版本中的一个高危拒绝服务漏洞。该漏洞存在于文件处理模块fs/ggml/gguf.go中的readGGUFV1String函数。该函数在解析GGUF(Georgian Get Unified Format)格式文件时,会从不可信的元数据中读取字符串长度信息,而未对长度值进行充分的边界检查。当攻击者构造一个包含超大字符串长度值的恶意GGUF文件并诱使目标系统解析时,会导致程序在内存分配或读取操作中出现异常,最终引发拒绝服务。由于该漏洞可通过网络远程触发(AV:N),且无需认证(PR:N)和用户交互(UI:N),因此具有较高的利用价值。CVSS评分7.5分,属于高危级别漏洞。
该漏洞的核心问题在于readGGUFV1String函数缺乏对GGUF元数据中字符串长度字段的有效验证。在正常的GGUF文件解析流程中,该函数会首先读取一个表示字符串长度的字段,然后根据该长度分配内存并读取相应字节的数据。攻击者可以通过构造一个GGUF文件,在元数据部分将字符串长度字段设置为一个极大的数值(如UINT64_MAX或接近系统内存限制的值)。当程序尝试根据这个超大长度值进行内存分配时,会导致两种可能的拒绝服务场景:1)内存分配失败导致程序崩溃;2)如果长度值被错误处理,可能导致整数溢出,进而引发越界读取或写入。由于该函数处理的是不可信的外部输入,攻击者可以远程部署恶意GGUF文件并诱导Ollama服务器解析,从而造成服务中断。