新“漏洞”:疯狂创建垃圾文件自动修改用户文件

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第1张

Visual Studio代码出现新Bug!

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第2张

近日,一位名叫na-an的用户在用微软的Visual Studio代码编辑器(以下简称VS代码)打开文件夹时,发现自己的目录中自动创建了很多空带有无效代码的文件。随后,该用户向VS代码GitHub库发布了一个相关问题,引起了热议。许多用户表示,他们也被“漏洞”所困扰。

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第3张

根据显示,这些自动创建的传入文件有的长有的短,这些文件名都不是有效的unicode(如图,261是八进制)。

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第4张

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

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第5张

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

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

新“漏洞”:疯狂创建垃圾文件自动修改用户文件,第6张

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

所以以上事实都证明了这个漏洞的根本原因在于VS代码+C++扩展1.9.4的预发布版本,因为它暂时不稳定,存在上述文件系统缺陷(但是如果你检查VS代码的自动更新功能,它会自动更新到C++扩展1.9.4的预发布版本)。

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

所以目前的推测是1.9.4版本不小心使用了未初始化的内存,指针问题导致了一些文件系统错误。修改不遵循现代C++编码标准的外部第三方子系统将阻止或检测未初始化指针的使用。

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

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/607841.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-05
下一篇 2022-07-05

发表评论

登录后才能评论

评论列表(0条)

保存