今日Golang发布一个安全版本(Go1.15.7和Go1.14.14),解决了涉及在不受信任目录中进行PATH查找的问题CVE--,相关的问题会导致执行goget命令时远程执行。关于该问题Golang官方博客进行了介绍,我们来学习下。
go命令和远程执行
golang语言的go命令设计目标是用来执行大量的操作,包括gobuild,godoc,goget,goinstall,以及golist,他们可以从互联网上下载但是不会运行任意代码。但是还有几个命令,比如gorun,gotest以及gogenerate可以直接运行任意代码,包括可复制的版本和安全性。因此,当goget可以被诱骗执行任意代码时,这是一个安全漏洞。
如果goget不能运行任意代码,那么其调用的所有程序,例如编译器和版本控制系统,也都在安全范围内。例如,过去曾经遇到过这样的问题,即在版本控制系统中巧妙地使用晦涩的编译器功能或远程执行漏洞,导致Go中的远程执行。
Go命令和PATH路径
所有操作系统都有一个可执行路径PATH的概念(在类Unix系统上是用$PATH定义,Windows上为%PATH%)。它是一些可执行文件保存目录的列表。在shell提示符下输入命令时,shell依次在列出的每个目录中查找具有该名称的可执行文件,然后运行找到的第一个命令,如果编译列表找不到该名称,就会报错找不到命令。
-bash:XXX:
转载请注明:http://www.0431gb208.com/sjszyzl/1366.html