低危 “go get”命令通过导入恶意程序包容易受到RCE攻击

CVE编号

CVE-2018-16873

利用情况

暂无

补丁情况

官方补丁

披露时间

2018-12-15
漏洞描述
在1.10.6之前的Go和1.11.3之前的1.11.x中,当使用-u标志和恶意Go包的导入路径或导入它的包时,“go get”命令容易受到远程代码执行的影响直接或间接地。具体来说,它仅在GOPATH模式下易受攻击,但在模块模式下不受影响(区别在https://golang.org/cmd/go/#hdr-Module_aware_go_get中记录)。使用自定义域,可以安排一些事情,以便通过使用以“/.git”结尾的虚荣导入路径将Git存储库克隆到名为“.git”的文件夹。如果Git存储库根包含一个“HEAD”文件,一个“config”文件,一个“objects”目录,一个“refs”目录,并且有一些工作来确保正确的操作顺序,那么“go get -u”就会被欺骗将父目录视为存储库根目录,并在其上运行Git命令。这将使用原始Git存储库根目录中的“config”文件进行配置,如果该配置文件包含恶意命令,它们将在运行“go get -u”的系统上执行。<br>
解决建议
厂商已发布了漏洞修复程序,请及时关注更新:
https://github.com/golang/go/issues/29230
受影响软件情况
# 类型 厂商 产品 版本 影响面
1
运行在以下环境
应用 golang go * Up to
(excluding)
1.10.6
运行在以下环境
应用 golang go * From
(including)
1.11.0
Up to
(excluding)
1.11.3
运行在以下环境
系统 amazon_AMI golang * Up to
(excluding)
1.10.6-1.47.amzn1
运行在以下环境
系统 debian_9 golang * Up to
(excluding)
1.7.4-2+deb9u3
运行在以下环境
系统 fedora_28 golang * Up to
(excluding)
1.10.7-1.fc28
运行在以下环境
系统 fedora_29 golang * Up to
(excluding)
1.11.4-1.fc29
运行在以下环境
系统 fedora_29_Containers golang * Up to
(excluding)
1.11-6.fc29
运行在以下环境
系统 fedora_EPEL_6 golang * Up to
(excluding)
1.11.4-1.el6
运行在以下环境
系统 fedora_EPEL_7 golang * Up to
(excluding)
1.11.4-1.el7
运行在以下环境
系统 opensuse_Leap_15.0 golang * Up to
(excluding)
1.0.0
运行在以下环境
系统 opensuse_Leap_15.1 golang * Up to
(excluding)
0.7.0.1
运行在以下环境
系统 opensuse_Leap_42.3 golang * Up to
(excluding)
1.11.4-2.1
运行在以下环境
系统 suse_12 containerd * Up to
(excluding)
1.2.5-16.17
阿里云评分
2.7
  • 攻击路径
    远程
  • 攻击复杂度
    困难
  • 权限要求
    无需权限
  • 影响范围
    有限影响
  • EXP成熟度
    未验证
  • 补丁情况
    官方补丁
  • 数据保密性
    无影响
  • 数据完整性
    无影响
  • 服务器危害
    无影响
  • 全网数量
    100
CWE-ID 漏洞类型
CWE-20 输入验证不恰当
阿里云安全产品覆盖情况