人気の数学ライブラリに暗号化ローダーが潜んでいた
Why Does an NPM Math Library Need an Encrypted Loader?

npmパッケージ[email protected]に、暗号化された遠隔操作インプラントが仕込まれていた。特定の行列をlusolve()に渡すとローダーが起動し、ペイロードを復号して実行。攻撃者はSlackとBase Sepoliaテストネット経由でコマンドを送り、任意のシェルコマンドを実行できる。同様のローダーはmathsbaseとmath-universeにも含まれ、GitHubの公開ソースには存在しない。
パッケージは遠隔操作インプラントである。
HNでの議論
39- j2kun
一体なぜ、あの特定の3x3行列が攻撃のトリガーになるんだ?何か特定の種類の数値解析をやっている人を狙っているのか?
- fn-mote
JFrogがパスワードをクラックする作業を行い、それが残りの分析を可能にしたということを知るには、かなり先まで読む必要がある。
- hiddenvulkcan
実はそれをクラックした(あるいはClaude/中国を使ってクラックした)人に偶然出会ったんだ。
どうやら第2ステージは完全に壊れているらしく、それはさらに奇妙だ…
https://research.veryserious.systems/lusolve-and-you-shall-r...
- WorldMaker
これの多くは、CommonJSモジュール形式はもう死なせてやるべきだというリマインダーのように思える。ESMで`await import()`を使えば似たようなトリックは可能だが、依存関係全体を動的な`require()`で簡単にgrepするのは、動的インポートを`grep import\s*\(`で探すほど簡単ではないし、静的な`import`キーワード向けの解析ツールは簡単に使えたり作れたりする一方で、CommonJSにはそんなものは存在しない。
今ではNPMより先にJSRを必ずチェックすると言ったら、誰かに冗談だと思われた。それだけESMをCommonJSより信頼しているからだ。
- firesteelrain
この時点でnpmの修正策は何なのか?レジストリに関して多くの問題を抱えている。