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 版本里不存在这个问题。

相关文章
Visual Studio C# CS0006 C# 未能找到元数据文件
Visual Studio C# CS0006 C# 未能找到元数据文件
140 0
Visual Studio C# CS0006 C# 未能找到元数据文件
|
18天前
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
|
IDE 开发工具 C#
Visual Studio使用Git忽略不想上传到远程仓库的文件
Visual Studio使用Git忽略不想上传到远程仓库的文件
|
7月前
|
IDE API 开发工具
visual studio 生成dll文件以及修改输出dll文件名称操作
visual studio 生成dll文件以及修改输出dll文件名称操作
300 0
|
7月前
|
IDE 开发工具
一文解决Visual Studio 2022运行时系统找不到指定文件的错误(简单易懂 亲测有用)
一文解决Visual Studio 2022运行时系统找不到指定文件的错误(简单易懂 亲测有用)
2906 0
|
存储 C++
VisualStudio打包项目文件为.exe安装包
注意事项:打包项目前,确保项目能正常运行,不然打包毫无意义。
184 0
|
编译器 C语言
visual studio生成的exe文件如何在其他电脑上运行
简介:C语言的编译器在运行代码的时候会生成一个exe文件,visual studio将这个exe文件拷贝过去并不能运行,为此本文将介绍一下如何将生成的exe文件在其他电脑上运行。
1356 0
visual studio生成的exe文件如何在其他电脑上运行
|
XML 存储 JSON
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
140 0
猿创征文|Python基础——Visual Studio版本——第五章 文件I/O
|
缓存 网络协议 Java
*(已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
*(已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
*(已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
【琐琐碎碎小知识】 Visual Studio 2019 查看类文件的类图
【琐琐碎碎小知识】 Visual Studio 2019 查看类文件的类图
459 0
【琐琐碎碎小知识】 Visual Studio 2019 查看类文件的类图