Visual Studio Code 被发现新“漏洞”!疯狂创建垃圾文件+自动修改用户文件

简介: Visual Studio Code 被发现新“漏洞”!疯狂创建垃圾文件+自动修改用户文件

Visual Studio Code 又出现新 Bug 了!

image.png

近日,一位名为 na-an 的用户在使用 Microsoft 的 Visual Studio Code 编辑器(以下简称 VS Code)打开文件夹时,发现其目录中会自动创建许多带有无效代码的空文件。随后,该用户便将一个相关问题发布到 VS Code GitHub 存储库上,一时间引发了热烈的讨论,不少用户都表示他们同样受到了该“漏洞”的困扰。

image.png

据显示,这些自动创建的来及文件有些文件名长,有些短,且这些文件名并不是有效的 unicode(如图中的 \312\316\361 是八进制)。

image.png

经过分析之后,发现这些随机创建的文件,似乎来自正在运行的进程内存转储,其中就包含了通常出现在可执行文件中的字符串,以及看起来像是带有堆栈损坏或越界的指针问题(pointer issue)。

image.png

除了疯狂地创建空文件外,这次发现的 VS Code “漏洞”还会随机修改用户文件。比如以用户名 daantimmer 打头的文件里所有内容都被清除了,都变成了 0 KB,这个情况是最糟糕的,因为你无法保证是否提前给文件备份。

image.png

当然,该漏洞不仅限于当前的工作区文件夹,它甚至可以清空一些系统文件/文件夹。

image.png

目前,这个漏洞已出现在 Windows 和 Linux 等不同的系统上。据了解,该漏洞的“受害者”都有个共同点:他们都写 C++ 代码,使用 VS CODE 的 C++ 扩展。因为有用户发现,当他试图禁用所有扩展后,该问题就消失了;如果将 C++ 扩展转换为稳定版本(1.8.4),问题也会消失。

所以,以上事实均证明了该漏洞的根本原因就在于 VS CODE + C++ 扩展 1.9.4 的预发布版本,因为它暂时不稳定,且具有以上文件系统缺陷(但是,如果检查VS CODE 自动更新功能,它将自动更新到 C++ 扩展 1.9.4 的预发布版本)。

当然,C++ 扩展的开发人员并不知道 1.9.4 版本究竟哪里有问题。而内存损坏问题似乎又与 C++ 扩展中的几个长期存在但未解决的文件损坏错误有关:α4573 和 5061。

因此,目前的猜测就是:1.9.4 版本意外地使用未初始化的内存,且指针问题(pointer issue)引起了一些文件系统错误,因对不遵循现代 C++ 编码准则的外部第三方子系统进行修改,就会阻止或检测未初始化指针的使用。

想要解决这个问题的方法很简单,那就是 —— 别安装 1.9.4 版本的 C++ 扩展。当然,在 1.9.5 、1.9.3、1.8.4 以及新发布的 1.9.6 版本里不存在这个问题。

相关文章
|
编译器 C语言
visual studio生成的exe文件如何在其他电脑上运行
简介:C语言的编译器在运行代码的时候会生成一个exe文件,visual studio将这个exe文件拷贝过去并不能运行,为此本文将介绍一下如何将生成的exe文件在其他电脑上运行。
1291 0
visual studio生成的exe文件如何在其他电脑上运行
|
IDE 开发工具 git
Visual Studio使用Git忽略不想上传到远程仓库的文件
Visual Studio使用Git忽略不想上传到远程仓库的文件
243 0
Visual Studio使用Git忽略不想上传到远程仓库的文件
Visual Studio 编译项目失败,提示找不到文件
 博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下。
1028 0
|
IDE 安全 开发工具
在 Visual Studio 调试器中指定符号 (.pdb) 和源文件
查找并指定符号文件和源文件;指定符号加载行为、使用符号和源服务器上;加载符号自动或在要求。   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Visual Studio 版本与 2012 中,调试在远程计算机上的管理的代码需要符号文件还查找了远程计算机。
4618 0
|
SQL 数据库
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
|
Web App开发 Windows
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer
原文:Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 days.
2175 0