其乐融融的IT技术小站

百万周下载量 node-ipc 包以反战为名进行供应链投毒

vue-cli 的依赖项 node-ipc 包正在以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。

知名技术网站 V2ex 的一条帖子爆出了这个问题,用户 simbaCheng 在使用 npm 构建前端项目时,启动项目后桌面自动创建了一个《 WITH-LOVE-FROM-AMERICA.txt 》文件,点开之后发现内容是空的。

simbaCheng 被吓一跳,以为自己电脑中毒了。在网友的热心帮助下,发现该 txt 文件是 vue-cli 的依赖项 node-ipc 包的作者 RIAEvangelist 在投毒,该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念。

然而网友继续深扒后,发现该作者还有更恶毒的投毒行为。如果说往用户桌面写 txt 文件属于激进的反战行为,那么知乎用户 @贺师俊 所介绍的 这个 Issue 中的举动则是彻底的恶意攻击:

攻击源码在仓库中仍可找到。源码经过压缩,简单地将一些关键字符串进行了 base64 编码。其行为是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP,会尝试覆盖当前目录、父目录和根目录的所有文件,把所有内容替换成 ❤。

但在提交了上面恶意攻击代码后,也许是意识到自己行为的严重性,该作者在半天后把该恶意攻击改成了“较和平”的“反战” TXT 文本,正如本文开头所描述的一般。但无论如何这仍然是一种恶劣的攻击行为,严重破坏了开源生态中的信任,它最坏的后果是带来强代码审核,各大代码托管平台会对代码注释、变量常量命名进行审核。

注意:该作者清晰地知道自己在做什么,以及这些代码意味着什么,他在 issue 里明确指出了下游可以消除影响的变通方法。在该 vue-cli issue 对话 中,RIAEvangelist 更是大方承认自己的恶意代码是针对俄罗斯和白俄罗斯用户

而且,这不是 RIAEvangelist 和他的这个 node-ipc 包第一次引起争议了,早在 2020 年 node-ipc 就因为其奇怪的“don't be a dick”许可证引起了争议,尤雨溪还出面回应:

后续:

  • vue-cli 发布了新版本,将 node-ipc 的版本锁定到 v9.2.1

附受影响项目的解决方式:

  • 按照 readme 正常 install
  • 构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除
  • 然后项目的node_models目录下,将'peacenotwar'目录删除
  • '项目/node_modules/node-ipc/node-ipc.js'这个文件中引用'peacenotwar'的代码注释掉
  • 然后正常启动项目即可。
赞 ()
分享到:更多 ()

相关推荐

内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: