黑客业务

24小时接单的黑客,黑客业务,黑客怎么找,网络黑客,黑客技术

CVE-2021-3115——Golang Windows版本 RCE漏洞

1月,谷歌工程师修复了Go语言(Golang)一个远程代码执行漏洞。CVE编号为CVE-2021-3115,漏洞主要影响使用go get命令的Windows Go用户。

搜索非可信目录路径RCE

这个漏洞是日本安全研究人员RyotaK发现的是命令注入漏洞。漏洞的根本原因是用户运行go get提取库时编译过程的工作原理。

在Windows 操作系统由用户或程序操作shell命令会引发shell 在当前目录中搜索与该命令相关的二进制文件或可执行文件,然后在系统中搜索PATH在变量中指定目录列表。

例如,如果是Windows 命令窗口输入netstat,Windows在当前目录中搜索netstat.exe、netstat.bat或其他netstat.*这些搜索到的文件将优先执行可执行文件。


测试Windows PATH查找

如果当前目录不存在netstat 相关可执行文件,然后Windows shell就会查找netstat 系统工具位于 Windows %PATH% 变量。

与该行为有关的安全风险,Windows PowerShell和Unix shell在执行命令时,已经放弃了默认行为,并开始优先考虑当前目录中不可信的%PATH% 变量位置。

也就是说,在PowerShell 中运行netstat 会启动netstat系统工具,而不是本地工具netstat.bat,因为PoweShell 会优先考虑%PATH在% 目录中搜索包含该名称的二进制文件。

为保持一致性,Golang 二进制文件在Unix 在系统中效仿Unix 规则,在Windows 在系统中效仿Windows 规则。换句话说,下面的命令是运行的Unix系统和Windows 系统中会产生不同的行为:

  • out,err:=exec.Command("go","version").CombinedOutput()
  • 在Windows 系统中,本地的Go二进制文件优先级高,Unix 系统将首先搜索$PATH 变量确认其可信位置是否存在go 二进制文件。

    这种优先考虑本地和非可信目录的方法也在Go helper并在编译器中实现,如调用C生成语言代码Go包的工具——cgo。

    Cgo在Windows系统中编译C代码时,Golang可执行文件将首先在非可信的本地目录中搜索GCC编译器。Cgo运行的go命令将包含包资源。因此,攻击者可以使用它cgo启动恶意gcc.exe程序。

    虽然这种行为可能是由多个编译器、库等引起的,但Golang Project决定修复漏洞并发布补丁。

    总结

    研究人员RyotaK 称漏洞的发现受到影响CVE-2020-27955漏洞启发,CVE-2020-27955是Git LFS命令注入漏洞是由不安全的文件执行引起的Git LFS远程代码执行漏洞。

    研究人员建议用户升级到最新Go v1.14.14避免使用漏洞的版本。

    本文翻译自:https://www.bleepingcomputer.com/news/security/google-fixes-severe-golang-windows-rce-vulnerability/如若转载,请注明原文地址。

       
    • 评论列表:
    •  性许傻梦
       发布于 2022-05-31 14:03:43  回复该评论
    • 1月,谷歌工程师修复了Go语言(Golang)一个远程代码执行漏洞。CVE编号为CVE-2021-3115,漏洞主要影响使用go get命令的Windows Go用户。搜索非可信目录路径
    •  孤央叹倦
       发布于 2022-05-31 05:19:24  回复该评论
    • 4.14避免使用漏洞的版本。本文翻译自:https://www.bleepingcomputer.com/news/security/google-fixes-severe-golang-windows-rce-vulnerability/如若转载,请注明原文地址

    发表评论:

    Powered By

    Copyright Your WebSite.Some Rights Reserved.