详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞

admin 2022年3月29日03:15:09评论62 views字数 1830阅读6分6秒阅读模式

详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士


Visual Studio 代码远程开发扩展(Code Remote Development Extension) 1.50 未能在将其用作 ssh 命令的参数前清理 host 字段,导致注入 ProxyCommand 选项,从而运行任意代码。



详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
产品描述

微软称,Visual Studio Code 远程开发可使用户使用容器、远程及其或 Windows Subsystem for Linux (WSL) 作为功能全面的开发环境。

用户能够:

  • 在用户部署的操作系统上开发或者使用更大的或更专门的硬件。

  • 分离开发环境,避免影响本地机器配置。

  • 使新贡献者能够动手并让所有人都位于统一环境中。

  • 使用本地OS上不可用的工具或运行时,或管理它们的多个版本。

  • 使用 Windows Subsystem for Linux 开发自己的部署在 Linux 上的应用程序。

  • 从多个机器或位置访问现有的开发环境。

  • 调试在别处如在客户站点或云中运行的应用程序。

获得这些权益,无需在本地机器部署源代码。远程开发扩展包中的每个扩展都能够直接在容器内、WSL 中或远程机器上运行命令和其它扩展,使得在本地运行时未察觉任何变化。


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
CVE 编号

CVE-2021-17148


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
根因分析

“Remote-SSH”扩展中存在一个参数注入漏洞,该扩展由”远程开发“扩展使用并安装。扩展使用主机的SSH二进制建立和远程主机的连接。

触发 SSH 连接的其中一种方式使使用 vscode://URI 图式。具体而言,格式如下:vscode://vscode-remote/ssh-remote+$REMOTE_HOST+$PATH_OF_PROJECT_ON_THE_REMOTE_HOST

用户浏览和之前一样的 URI 时,VSCode 打开,该扩展尝试连接至 $REMOTE_HOST,在连接过程中,执行如下命令:ssh -T -D $RANDOM_PORT "$REMOTE_HOST" bash。

由于未在 $REMOTE_HOST 用户提供的输入中执行清理,因此很有可能在SSH 二进制中注入任意参数。SSH 具有一个名为 ProxyCommand 的选项,它指定在执行真正的SSH连接前执行的命令。

这样,就很有可能通过强迫受害者打开恶意连接的方式在受害者主机上执行任意系统命令。


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
PoC

1、安装 Visual Studio Code

2、安装”远程开发“扩展

3、打开浏览器

4、访问如下URL:

vscode://vscode-remote/ssh-remote+-oProxyCommand=C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -c msg %username% command_injection" "[email protected]+/a


5、确认打开VSCode

6、选择任意OS(Linux/Windows/MacOS)

7、通过 “command_injection” 信息发现由 PowerShell 执行的弹出信息

详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞


只要编辑 ProxyCommand,就可能在 Linux 和 MacOS 上复现同样的攻击。


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
影响

能够强迫受害者访问恶意链接的攻击者能够在系统上执行任意命令。


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
修复方案

将Visual Studio 代码远程开发扩展更新至 1.51 或更高版本


详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
披露时间线
  • 2020年8月17日:发现并将漏洞告知微软

  • 2020年8月20日:微软证实漏洞存在

  • 2020年11月2日:微软发布修复方案

  • 2021年9月24日:Shielder 公司发布本公告








推荐阅读

微软紧急修复两个 RCE,影响 Windows Codecs 库和 Visual Studio
VSCode 扩展中出现严重漏洞,可导致供应链攻击
坐火车太无聊,我溜入微软 VS Code官方GitHub仓库,但没敢发动供应链攻击





原文链接

https://www.shielder.it/advisories/remote-command-execution-in-visual-studio-code-remote-development-extension/


题图:Pixabay License



本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞
详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

   详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞 觉得不错,就点个 “在看” 或 "” 吧~



本文始发于微信公众号(代码卫士):详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月29日03:15:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   详述Visual Studio 代码远程开发扩展中的远程命令执行漏洞http://cn-sec.com/archives/561067.html

发表评论

匿名网友 填写信息