聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

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

产品描述

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

用户能够:

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

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

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

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

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

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

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

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

CVE 编号

CVE-2021-17148

根因分析

“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连接前执行的命令。

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

PoC

1、安装 Visual Studio Code

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

3、打开浏览器

4、访问如下URL:

vscode://vscode-remote/ssh-remote+-oProxyCommand=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c msg %username% command_injection" "a@127.0.0.1+/a

5、确认打开VSCode

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

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

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

影响

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

修复方案

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

披露时间线

  • 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”。

奇安信代码卫士 (codesafe)

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

 觉得不错,就点个 “在看” 或 "赞” 吧~

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

  1. Developing with Visual Studio Code 使用Visual Studio代码进行开发 Lynda课程中文字幕

    Developing with Visual Studio Code 中文字幕 使用Visual Studio代码进行开发 中文字幕Developing with Visual Studio Code ...

  2. vscode中怎样格式化js代码_如何在Visual Studio代码(VSCode)中格式化代码

    回答(30) 2 years ago 对于那些想要自定义要格式化的JavaScript文件的人,可以使用 JSfiles 属性上的任何扩展名同样适用于HTML . { "beautify.o ...

  3. 提高Java开发效率:5个常用的Visual Studio代码扩展工具

    对于软件工程师来说,能够更好地管理时间是一项宝贵的技能.因此,这里有5个Visual Studio代码扩展工具,可以帮助前端开发人员(以及更多的人!)将生产力至少提高10%到20%,下面和小编一起来看 ...

  4. 2017年最喜欢的Visual Studio代码扩展

    by Daniel Deutsch 由Daniel Deutsch 2017年最喜欢的Visual Studio代码扩展 (Favorite Visual Studio Code Extensions ...

  5. 直接在Visual Studio代码编辑器中加密字符串文件

    String encryption is used everywhere in desktop & mobile software. You might not even know about ...

  6. 如何在Visual Studio代码中隐藏侧栏中的某些文件?

    本文翻译自:How do I hide certain files from the sidebar in Visual Studio Code? Using Microsoft's Visual S ...

  7. 在Visual Studio代码中显示空白字符

    本文翻译自:Show whitespace characters in Visual Studio Code Is it possible to show whitespace characters, ...

  8. linux中vsc是什么作用,在Linux上开始使用Visual Studio代码(VSC)

    Visual Studio代码(VSC)是几个月前由Microsoft发布的源代码编辑器. 该软件基于Atom引擎,虽然它不是开放源代码 ,但它提供了一个适用于Linux的工作版本,您可能会发现有一些 ...

  9. .NET 11 个 Visual Studio 代码性能分析工具

    原文地址 软件开发中的性能优化对程序员来说是一个非常重要的问题.一个小问题可能成为一个大的系统的瓶颈.但是对于程序员来说,通过自身去优化代码是十分困难的.幸运的是,有一些非常棒的工具可以帮助程序员进行 ...

最新文章

  1. 深度学习崛起十年:“开挂”的OpenAI革新者
  2. 华为8x计算机横屏怎么设置,荣耀8x怎么设置横屏显示 两种操作方法详细介绍
  3. SLAM:ORB-SLAM 位姿优化描述
  4. Windows 11 dapr 环境安装
  5. x86 的 TSS 任务切换机制
  6. php文件管理 打包,Thinkphp6如何利用ZipArchive打包下载文件
  7. Golang时间格式化
  8. 千寻和省cors精度对比_测量员新手上路攻略:解析省CORS和千寻CORS账号区别及其如何选择运用...
  9. (转)PHP利用Curl、socket、file_get_contents POST数据
  10. 从SQL到NoSQL—如何使用表格存储
  11. vmware桥接模式、NAT网络地址转换、仅主机模式
  12. 3dmax快捷键大全
  13. 『实用教程』四种超实用的超级记忆法以及记忆训练案例
  14. 如何实时捕捉社会热点?微博热搜数据监测系统-API接口
  15. 操作系统系统概述——云计算
  16. linux查看目录是不是btrfs,Linux之btrfs详解2015082901
  17. latex 中下括号 underbrace 如何对齐
  18. 如何获得复权后的股票数据
  19. 关于GitHub Education(GitHub教育认证)认证
  20. C++ sqlite3解决中文排序问题

热门文章

  1. sed 和 awk 正则表达式
  2. 跳转到系统挑选铃声的页面
  3. kafka 控制台命令
  4. hashMap 根据已有知识知道的
  5. IBM推出跨境支付区块链网络,企业级区块链技术进一步升级
  6. PHPStorm 调式JS /同时调式PHP和jS
  7. 第八章:文本处理工具
  8. 转:10+年程序员总结的20+条经验教训
  9. 传统企业如何选择优质的微信解决方案提供商
  10. WEB 自动化测试工具 Selenium 简介及其应用