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

2022-03-16 星期三

文 | 罗奇奇

出品 | OSC开源社区(ID:oschina2013)

vue-cli 的依赖项 node-ipc 包正在以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。
知名技术网站 V2ex 的一条帖子爆出了这个问题,用户  simbaCheng 在使用 npm 构建前端项目时,启动项目后桌面自动创建了一个《 WITH-LOVE-FROM-AMERICA.txt 》文件,点开之后发现内容是空的。
 simbaCheng 被吓一跳,以为自己电脑中毒了。在网友的热心帮助下,发现该 txt 文件是 vue-cli 的依赖项 node-ipc 包的作者 RIAEvangelist 在投毒,该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念
然而网友继续深扒后,发现该作者还有更恶毒的投毒行为。如果说往用户桌面写 txt 文件属于激进的反战行为,那么知乎用户 @贺师俊 所介绍的 这个 Issue 中https://github.com/RIAEvangelist/node-ipc/issues/233#issuecomment-1068182278)的举动则是彻底的恶意攻击:
攻击源码在仓库中仍可找到https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js)。
源码经过压缩,简单地将一些关键字符串进行了 base64 编码。其行为是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP,会尝试覆盖当前目录、父目录和根目录的所有文件,把所有内容替换成 ❤。
但在提交了上面恶意攻击代码后,也许是意识到自己行为的严重性,该作者在半天后把该恶意攻击改成了“较和平”的“反战” TXT 文本,正如本文开头所描述的一般。但无论如何这仍然是一种恶劣的攻击行为,严重破坏了开源生态中的信任,它最坏的后果是带来强代码审核,各大代码托管平台会对代码注释、变量常量命名进行审核。
注意:该作者清晰地知道自己在做什么,以及这些代码意味着什么,他在 issue 里明确指出了下游可以消除影响的变通方法。在该 vue-cli  issue 对话 中,RIAEvangelist 更是大方承认自己的恶意代码是针对俄罗斯和白俄罗斯用户😅
而且,这不是 RIAEvangelist 和他的这个 node-ipc 包第一次引起争议了,早在 2020 年 node-ipc 就因为其奇怪的“don't be a dick”许可证引起了争议,尤雨溪还出面回应:
后续:
  • vue-cli 发布了新版本https://github.com/vuejs/vue-cli/releases/tag/v5.0.3,将 node-ipc 的版本锁定到 v9.2.1

附受影响项目的解决方式:
  • 按照 readme 正常 install

  • 构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除

  • 然后项目的node_models目录下,将'peacenotwar'目录删除

  • '项目/node_modules/node-ipc/node-ipc.js'这个文件中引用'peacenotwar'的代码注释掉

  • 然后正常启动项目即可。

往期精彩回顾



Google史上第二大收购案出炉

Android再推“杀手级”功能

国产开源项目力克英伟达和微软


觉得不错,请点个在看

原文地址:点击