NodeJS 圈出大瓜了!周下载量 2000 万+ 的 NPM 包作者植入恶意代码,程序直接崩溃!

651 阅读1分钟

JAVA 圈​广受使用的日志库 Log4j 刚出问题不久,没想到 NodeJS 圈也出问题了!

就在 18 小时前,广受使用、周下载量 2000 万+ 的​ NPM 库 colors 更新了 1.4.1 版本。该版本在启动时植入了恶意代码,只要安装了该版本的应用,启动即崩溃。

重现方式

  1. 创建一个空项目
  2. npm install colors
  3. 入口点文件:
    require('colors')
    
  4. 运行之

screenshot-20220109-191518.png

屏幕会出现 3 行 LIBERTY LIBERTY LIBERTY,接着是一面美国国旗,然后就陷入了无尽的死循环。

程序根本无法正常启动。

影响范围

所有引用了 colors 的项目都受到波及,查看最新版 colors 源码后,发现以下恶意代码:

WechatIMG628.jpeg

在其官方 Git 已有大量网友评论: github.com/Marak/color…

image.png

作者为什么要这样做,我们还不得而知,但鉴于其每周 2000 万+的下载量,影响面之大超乎想象。

解决方案

TSRPC 社区第一时间发现问题,并给出解决方案。

目前,TSRPC 已经移除所有 colors 相关的引用,如果您使用 TSRPC 遇到同样问题,可以尝试删除 node_modulespackage-lock.json 后重新 npm install

如果你在自己的项目中引用了 colors 并导致此问题,可以回滚到上一个正常版本 colors@1.4.0

npm i colors@=1.4.0

有任何问题,欢迎加入 TSRPC 与 TypeScript 全栈开发交流群。

image.png