npm数学库竟藏加密后门

Why Does an NPM Math Library Need an Encrypted Loader?

npm数学库竟藏加密后门

我们在npm包mathmain中发现了一个远程访问植入物,其恶意代码经过加密,只有在程序用特定矩阵求解方程时才会被激活。这个方程的解就是解密密钥,一旦匹配成功,载荷就会运行并允许攻击者通过Slack和Base Sepolia区块链网络远程控制主机。该载荷不仅读取系统信息,还能执行任意Shell命令。我们进一步发现,mathsbase和math-universe两个包也使用了相同的加载器。尽管GitHub源码中并无此代码,但npm发布的构建版本却包含它,说明攻击者是在发布环节注入了恶意逻辑。

这个方程就是密钥,当密钥匹配时,包就会解密载荷并运行它。
  1. fn-mote

    你得往下读挺远,才能发现是 JFrog 破解了密码,这才让后续的分析成为可能。

    https://research.jfrog.com/post/equation-of-compromise/

  2. j2kun

    天哪,为什么偏偏是那个特定的 3x3 矩阵会成为攻击触发条件?他们是在找做某种特定数值分析的人吗?

  3. hiddenvulkcan

    我确实遇到过有人破解了它(或者用 Claude/中国破解了它)。

    看来第二阶段完全崩了,这甚至更奇怪..

    https://research.veryserious.systems/lusolve-and-you-shall-r...

  4. WorldMaker

    这大部分内容似乎都在提醒我们,CommonJS 模块格式早就该死了。不是说你不能在 ESM 里用 `await import()` 玩类似的把戏,但你没法像用 `grep import\s*\(` 查找动态 import 那样轻松地 grep 整个依赖项里的动态 `require()`。而且,针对静态 `import` 关键字的分析和工具很容易使用或构建,而 CommonJS 却没有任何这样的东西。

    当我说我总是先查 JSR 再查 NPM 时,有人以为我在开玩笑,因为我对 ESM 的信任远超过 CommonJS。

  5. fshafique

    FBI 或其他执法机构会跟进这些后门吗?这算犯罪,甚至是犯罪共谋,还是只有使用后门的行为才算犯罪?

    我也看到它仍然挂在 NPM 上,没有任何警告:

    - https://www.npmjs.com/package/mathmain

    但该包的 Github 仓库和作者页面都挂了:

    - https://github.com/allendev12

    - https://github.com/allendev12/mathmain

同日更多故事

2026-09-21