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

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

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

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

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

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

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

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

然而,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

责任编辑:未丽燕 来源: 开源中国
相关推荐

2012-05-02 16:09:13

系统垃圾

2009-08-21 19:10:53

Windows 7系统垃圾清理

2020-02-24 11:12:01

Linux电脑数据

2020-04-03 13:45:16

删除Linux垃圾文件

2020-07-25 09:33:42

智能手机文件

2010-11-16 16:23:04

Oracle修改用户

2021-09-14 14:02:40

手机内存技术

2010-05-17 13:00:56

MySQL修改用户密码

2018-01-02 10:06:49

Linux修改用户名修改家目录

2010-07-01 11:13:27

Linux Chown

2009-11-03 17:08:38

Oracle修改用户权

2021-10-26 10:25:44

网页Code运行

2019-03-04 14:20:46

Ubuntu修改用户密码

2014-02-25 14:32:40

华三交换机华三

2021-06-03 11:12:32

Windows 10Bug文件

2021-06-03 05:07:17

Windows10操作系统微软

2011-07-27 10:30:21

活动目录

2018-03-15 09:07:37

手机垃圾文件清理

2022-05-27 12:20:18

微信智能手机

2018-04-08 14:08:50

笔记本清理系统
点赞
收藏

51CTO技术栈公众号