CRITICAL and HIGH CVE Vulnerabilities reported in OLLAMA GOBinary

该报错通常出现在用镜像或二进制扫描工具(如 Trivy)对 /usr/local/bin/ollama 这个 Go 二进制做漏洞扫描时,会报出 CRITICAL and HIGH CVE Vulnerabilities reported in OLLAMA GOBinary ,核心原因是 Ollam

快速结论:该报错通常出现在用镜像或二进制扫描工具(如 Trivy)对 /usr/local/bin/ollama 这个 Go 二进制做漏洞扫描时,会报出 CRITICAL and HIGH CVE Vulnerabilities reported in OLLAMA GOBinary,核心原因是 Ollama 发布产物仍用较旧的 Go 工具链或旧依赖编译,优先排查并升级到已包含修复的 Ollama 发布版本。

适用环境:Issue 已确认环境为 Linux,Ollama 版本 0.23.0(后续讨论中另测试了 0.23.1、0.30.7、0.35.0 的二进制)。未提供 GPU、CPU、Python、CUDA 信息。

最快修复方案:暂无确认的一步修复方案。Issue 讨论显示 0.23.1、0.30.7 官方二进制仍可扫出 CVE;讨论者自行基于 0.30.7 源码重编译镜像后验证可清除所报 CVE,但这不是官方发布产物,不能视为已验证的通用修复。

注意事项:讨论中给出的自定义 Docker 镜像 ghcr.io/koushikbsk/ollama:kb.01a 属于第三方构建,来源与可信度未获维护者确认,不建议直接用于生产;自行重编译需要同步升级 Go 工具链及 github.com/buger/jsonparser、golang.org/x/crypto、golang.org/x/image 等依赖。

问题场景

用户在 Linux 上通过官方发布渠道安装 Ollama 0.23.0,使用漏洞扫描对 /usr/local/bin/ollama 进行检测时,报出 36 个漏洞(1 个 CRITICAL、11 个 HIGH、23 个 MEDIUM、1 个 LOW),涉及 Go 标准库、github.com/buger/jsonparser、golang.org/x/crypto、golang.org/x/image等组件。后续用户将版本升级到 0.23.1、0.30.7,甚至 0.35.0 的二进制后,扫描仍能检出部分 CVE。

报错原文

CRITICAL and HIGH CVE Vulnerabilities reported in OLLAMA GOBinary

Path: /usr/local/bin/ollama (Go binary)

Vulnerability Summary
---------------------
Total: 36
  CRITICAL: 1
  HIGH:     11
  MEDIUM:   23
  LOW:       1
  UNKNOWN:  0

Library: Go Standard Library (stdlib)
- CVE:      CVE-2025-68121
- Severity: CRITICAL
- Installed Version: v1.24.1
- Fixed Versions:    1.24.13, 1.25.7, 1.26.0-rc.3
- Issue: Incorrect certificate validation during TLS resumption

Library: github.com/buger/jsonparser
- CVE:      CVE-2026-32285
- Severity: HIGH
- Installed Version: v1.1.1
- Fixed Version:     1.1.2
- Issue: Denial of Service via malformed JSON input

Library: golang.org/x/crypto
- CVE:      CVE-2025-47914
- Severity: MEDIUM
- Installed Version: v0.43.0
- Fixed Version:     0.45.0
- Issue: SSH agent DoS via malformed messages

Library: golang.org/x/image
- CVE:      CVE-2026-33809
- Severity: MEDIUM
- Installed Version: v0.22.0
- Fixed Version:     0.38.0
- Issue: DoS via malicious TIFF file

原因分析

最可能的原因是 Ollama 官方发布二进制在编译时使用了较旧的 Go 工具链与旧版本依赖。Go Standard Library (stdlib) 的 CRITICAL CVE 明确显示安装版本为 Go 1.24.1,即该二进制由存在已知漏洞的 Go 版本编译;jsonparser、x/crypto、x/image 等第三方依赖版本同样低于修复版本。只要官方发布产物没有重新用修复后的工具链和依赖构建,扫描结果就会持续复现。这一点在讨论中也被多位用户指出:只升级 Ollama 版本号并不能保证发布二进制中的 Go 与依赖版本同步更新。

环境排查

  • 确认 Ollama 具体版本:ollama --version,并区分是源码自编译还是官方发布二进制。
  • 确认二进制路径是否为 /usr/local/bin/ollama,与扫描报告一致。
  • 确认扫描工具读取的 Go 版本信息:可对二进制执行 go version -m /usr/local/bin/ollama,查看 Go 工具链版本和依赖模块版本。
  • 确认扫描结果对应的是官方发布产物还是自行构建的镜像,两者结论不能混用。

解决步骤

  1. 先对当前二进制核实版本信息,确认 CVE 报出的是发布产物本身,而非自定义构建的残留镜像。
  2. 尝试升级到讨论中更新的官方版本(0.23.1、0.30.7、0.35.0),然后重新扫描。注意:Issue 中已有用户反馈这些官方二进制仍能扫出 CVE,此步骤不一定能彻底消除全部告警,仅作为可优先尝试的验证步骤。
  3. 如果必须消除扫描告警,可参考讨论中的思路:基于对应版本源码,将 Go 工具链升级到 CVE 修复版本(如 stdlib 报错所列的 1.24.13、1.25.7 等),并升级 github.com/buger/jsonparser 至 1.1.2、golang.org/x/crypto 至 0.45.0 及以上、golang.org/x/image 至 0.38.0 及以上,重新编译二进制或镜像。
  4. 重编译后对新的二进制再次执行扫描,确认对应 CVE 状态从 fixed 转为不再报告。
  5. 若使用第三方预构建镜像,务必自行复核其源码与构建方式;Issue 中未提供维护者对该镜像的背书,不建议未经审计直接部署。

验证方法

对替换后的 ollama 二进制重新运行同一版本的漏洞扫描工具,确认原报告中 CVE-2025-68121(CRITICAL)及 HIGH 级别条目不再出现;同时用 go version -m <binary> 核对 Go 工具链与依赖模块版本已达到修复版本。Issue 讨论中,基于 0.30.7 源码重编译的自定义镜像被报告为已验证全部 CVE 已修复,但该结论尚未由官方维护者确认。

参考来源

ollama/ollama #16033

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 29744

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注