CVE-2026-39817CVE-2026-39817 是 Go 语言工具链中发现的一个安全漏洞,涉及 'go tool pack' 子命令。该命令在处理归档文件时未能正确清理文件名,导致存在路径遍历缺陷。攻击者可利用此漏洞诱导受害者解压特制的恶意归档文件,从而将文件写入文件系统的任意位置。尽管需要本地访问和用户交互,但漏洞可能导致系统完整性受到严重影响,覆盖关键系统文件。
该漏洞的根源在于 'go tool pack' 子命令缺乏对输出文件名严格的清理机制。虽然 'go tool pack' 主要是 Go 编译器的内部工具,用于处理对象归档文件(.a),但它也可以作为一种独立工具被开发者手动调用。在解压归档文件时,该工具未检查文件名中是否包含路径遍历序列(如 '../')或绝对路径。
攻击者利用此漏洞需要构造一个特制的归档文件,其中包含指向敏感目录的文件名(例如 '../../../tmp/malicious.sh')。随后,攻击者通过社会工程学手段诱导拥有低权限的用户在目标系统上执行 'go tool pack x <malicious_file.a>' 命令。由于程序未对文件路径进行限制,解压操作会突破当前工作目录,将文件写入文件系统上的任意位置。
根据 CVSS 3.1 评分向量(AV:L/AC:L/PR:L/UI:R/S:C/C:N/I:H/A:N),该漏洞属于本地攻击,利用复杂度低,需要用户交互。虽然机密性未受影响,但完整性影响极高(I:H),攻击者可利用此漏洞覆盖系统配置文件、二进制文件或植入后门,从而在交互发生时获得系统控制权或导致系统不稳定。