Go-Git中存在高危参数注入漏洞CVE-2025-21613
Go-Git是一个用纯 Go 语言编写的 Git 实现库,提供了低级(plumbing)和高级(porcelain)操作的 API,可以使用API 管理 Git 的仓库。
Go-Git从 2015 年开始开发,由于具有Storer接口,支持多种类型存储,包括内存中的文件系统或自定义实现,也可以实现对存储的扩展。
一、基本情况
Go-Git是一个用纯Go语言编写的高度可扩展Git实现库,该项目旨在兼容Git,所有的操作实现与Git完全一样,可直接与Git仓库进行操作。
Go-Git可在Go支持的所有平台上被编译和交叉编译,包括Linux、macOS和Windows,提供详细GoDoc文档,可简单整合到现有项目中。
栋科技漏洞库关注到 go-git 实现库中近期修复了一个参数注入漏洞,该漏洞现已追踪为CVE-2025-21613,该漏洞的CVSS评分为高达9.8。
二、漏洞分析
CVE-2025-21613是Go-Git多个受影响版本中存在的高危漏洞,源于在使用文件传输协议时未能正确处理或验证通过URL字段传入的输入。
漏洞导致攻击者可能注入恶意参数到本地调用的git二进制文件中,攻击者可利用漏洞修改git-upload-pack命令的标志,从而控制命令行为。
攻击者通过成功利用这一漏洞,可以设置任意的git-upload-pack标志值,进而导致未授权的访问、信息泄露或者可能会执行其他恶意操作。
鉴于该漏洞影响Go-Git库多个受影响版本,且漏洞评分超高,建议受影响用户尽快升级版本,避免网络财产损失等等一系列不必要的问题。
三、影响范围
4.0.0 <= go-git < 5.13.0
四、修复建议
目前该漏洞已经修复,受影响用户可升级到以下版本:
go-git >= 5.13.0
五、参考链接