4

VS Code 新 Bug:疯狂创造垃圾文件+自动修改用户文件

 2 years ago
source link: https://netsecurity.51cto.com/article/704363.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
VS Code 新 Bug:疯狂创造垃圾文件+自动修改用户文件-51CTO.COM
VS Code 新 Bug:疯狂创造垃圾文件+自动修改用户文件
作者:罗奇奇 2022-03-20 16:36:41
近日, 用户 na-an 发现:使用微软的 VSCode 编辑器打开文件夹时,目录中会自动生成许多带有无效代码的空文件。该用户随即在 VSCode GitHub 仓库中发布了相关 Issue,随机引发了热烈讨论,很多用户表示自己也饱受该 Bug 的困扰。

近日, 用户 na-an 发现:使用微软的 VSCode 编辑器打开文件夹时,目录中会自动生成许多带有无效代码的空文件。该用户随即在 VSCode GitHub 仓库中发布了相关 Issue,随机引发了热烈讨论,很多用户表示自己也饱受该 Bug 的困扰。

85eec2799b005efc27035155bb40a27a8a1ab1.png

有些文件名称很短,有些名称很长,这些文件的名称不是有效的 unicode ,比如图中的 \312\316\361 是八进制。随机创建的文件似乎来自正在运行的进程内存转储,包含一些通常出现在可执行文件中的字符串,看起来像指针出现了堆栈损坏或越界问题。

32e1509064465070b1e8382e2b7ec5a27937f9.png

最可怕的是,除了疯狂创造空文件外,VSCode 还会随机修改用户文件,比如用户 daantimmer 的所有头文件的内容都被清了,通通变成 0 KB(希望有备份🙏)

5761a3560c43434b66a9096f7b75027c7aa995.png

该 Bug 的影响范围不限于当前的工作区文件夹,它甚至能清空一些系统文件/文件夹:

f4c428615f4e7d607c7258de73c23762d67527.png

该 Bug 在 Windows 和 Linux 等不同系统中都出现过,但受害者有一个非常有趣的共同点:他们都写 C++ 代码,并使用 VSCode 的 C++ 扩展。有人尝试把所有扩展禁用所有扩展后,问题就消失了;如果将 C++ 扩展切换到稳定版本(1.8.4),问题也会消失。

如此一来就破案了( issues 9041),原来 Bug 的源头是 VSCode C++ 扩展 1.9.4 预发行版本,该版本并不稳定,出现了上述的文件系统 Bug。但如果用户勾选了 VSCode 自动更新功能,则会自动更新到预发行的 C++ 扩展 1.9.4 版本。

e2a0caa17cb31618df437307d0e137ce47acf1.png

然而,C++ 扩展的开发者也不知道 1.9.4 版本具体到底是哪里出现了问题,该内存损坏问题似乎跟 C++ 扩展早已存在,但无法解决的几个文件损坏 Bug: #4573 和 #5061 有关。目前的推测是 1.9.4 版本意外使用了未初始化的内存,由于修改了不遵循现代 C++ 编码指南的外部第三方子系统,可能会阻止或检测到未初始化指针的使用,指针问题导致出现了一些文件系统的问题。

用户解决该问题的方法也很简单,不再安装 1.9.4 版本的 C++ 扩展即可,1.9.5、1.9.3 、 1.8.4,或是 最新发布的 1.9.6 版本都不存在该问题。

本文转自OSCHINA

本文标题:VS Code 新 Bug:疯狂创造垃圾文件+自动修改用户文件

本文地址:https://www.oschina.net/news/187298/vscode-file-bug


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK