IPBUF安全漏洞报告
English
CVE-2026-4660 CVSS 7.5 高危

CVE-2026-4660 HashiCorp go-getter 任意文件读取漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-4660
漏洞类型
任意文件读取
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
HashiCorp go-getter

相关标签

任意文件读取路径遍历HashiCorpgo-getterCVE-2026-4660

漏洞概述

HashiCorp的go-getter库在v1.8.5及之前的版本中存在安全漏洞。攻击者可以通过精心构造的恶意URL,在特定的git操作过程中利用该漏洞读取文件系统上的任意文件。该漏洞的CVSS评分为7.5,属于高危级别,且无需用户交互和认证即可被利用。目前该问题已在go-getter v1.8.6版本中修复,v2分支不受影响。

技术细节

该漏洞源于go-getter库在处理git协议相关操作时,对URL的解析和校验存在缺陷。当库尝试从git源获取资源时,攻击者可以通过在URL中嵌入特定的路径遍历序列(如../)或利用文件协议标识符,绕过安全限制。由于CVSS向量显示无需认证(PR:N)且无用户交互(UI:N),攻击者可远程发起攻击。这种机制允许恶意构造的URL指向服务器的敏感文件(如SSH密钥、配置文件等),导致数据泄露。漏洞原理类似于SSRF或路径遍历,具体触发点在于git操作时的文件克隆或下载逻辑处理不当。

攻击链分析

STEP 1
侦察
攻击者识别目标系统使用了HashiCorp go-getter库且版本低于v1.8.6。
STEP 2
武器化
攻击者构造包含恶意文件路径(如file://或路径遍历)的特殊URL。
STEP 3
交付
攻击者诱导受害者应用或服务器使用go-getter处理该恶意URL。
STEP 4
利用
go-getter在解析git操作时,未正确过滤URL,导致读取了指定路径的文件内容。
STEP 5
影响
攻击者成功获取目标服务器上的敏感文件信息(如密钥、源码等)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
package main import ( "fmt" "github.com/hashicorp/go-getter" ) func main() { // Malicious URL targeting local files via git operation simulation // This demonstrates how a crafted URL might trigger the read maliciousURL := "git::file:///etc/passwd" // Target directory dst := "./output" client := &getter.Client{ Src: maliciousURL, Dst: dst, Pwd: "./", } err := client.Get() if err != nil { fmt.Println("Error:", err) } else { fmt.Println("File fetched successfully") } }

影响范围

HashiCorp go-getter <= v1.8.5

防御指南

临时缓解措施
建议立即升级受影响的库版本。若无法立即升级,应在网络边界实施严格的出站和入站流量检查,阻断包含异常协议(如file://)的请求,并限制对go-getter模块的用户输入来源,确保仅信任的Git源地址被处理。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表