Aikido

ミニ・シャイ・フルードが再び襲来:npmワームが@antvのパッケージ数百個を侵害

執筆者
Sooraj Shah

ミニ・シャイ・ハルドがまた戻ってきた。

4月から追跡してきたnpmのサプライチェーン攻撃が新たな波を巻き起こしており、今回はアリババの主要パッケージが標的となっています。 @antv スイートに加え React用ECharts そして timeago.js. 当社のマルウェア対策チームは、数百ものnpmパッケージ名にわたり、改ざんされたパッケージのバージョンが多数存在することを検知しました。

インストールされると、このペイロードCI/CD シークレット 平シークレット 収集し、ローカルのクラウドおよびSSH認証情報を盗み出し、VS CodeとClaude Codeの設定にバックドアを仕込みます。盗まれたトークンを使用して、すでに2,700件以上の不正なGitHubリポジトリが作成されています。

このペイロードはインストール時に実行されます。スキャナーがこのパッケージを検知する頃には、悪意のあるコードはすでにインストールされたすべてのマシン上で実行済みとなっています。これがなぜ重要なのかについては、以下の「検知」のセクションで詳しく説明します。

これまで SAPブーム TanStackブームに関する当サイトの記事をご覧になってきた方ならお分かりの通り、これはその一連の取り組みがさらに拡大しているものです。

何が起きたのか

当社のマルウェア対策チームは、5月19日に悪意のある投稿が急増していることを確認しました。最初のバッチの選別を終える頃には、さらに多くの投稿が寄せられ続けていました。

活動の大部分は、以下の対象を主として行われた @antv packages — JavaScriptにおけるデータ可視化、グラフ作成、地図表示、チャート作成用のライブラリ群で、広く利用されています。JavaScriptプロジェクトでダッシュボード、チャート、またはデータ量の多いUIを構築したことがあるなら、このリストに含まれるライブラリのいずれかが依存関係に含まれている可能性が高いでしょう。影響を受けるライブラリには以下が含まれます @antv/g2, @antv/g6, @antv/x6, @antv/l7, @antv/s2, @antv/f2, @antv/g, @antv/g2plot, @antv/graphin、および @antv/データセット、および次のような名前空間外のパッケージとともに React用ECharts, timeago.jなど、 サイズセンサー、および canvas-nest.js.

さらに @antvまた、この波は下の荷物の下にも及んだ @lint-md, @openclaw-cn、および @starmind、およびスコープ外の数々のnpmパッケージ。

React用ECharts このパッケージだけでも、週間のダウンロード数はおよそ110万件に上ります。これほどの規模であれば、パッケージの改ざんされたバージョンが1つ出回るだけで、瞬く間に多くの環境に拡散してしまう可能性があります。

これは、これまでの攻撃の波で見られたのと同じ手口です。攻撃者は、何百もの個々のアカウントを乗っ取る必要はありません。広範な公開権限を持つ1つの管理者アカウントへのアクセス権を得れば、そのアカウントが及ぶ範囲のすべてに悪意のあるバージョンを配布することができるのです。

ペイロードの仕組み

技術的なアプローチは、以前のMini Shai-Huludのバリエーションと一貫していますが、ファイル名の付け方やインフラストラクチャには若干の違いがあります。

ルートレベルの index.js ペイロードがパッケージの tarball に注入されます。インストール時にこれを実行するよう、package.json が変更されます:

「プリインストール」: "bun run index.js"

index.js ファイルは、文字列配列のルックアップテーブル、実行時デコード、およびカスタム復号化アルゴリズムを用いて高度に難読化されており、静的解析から機密性の高い文字列を隠蔽しています。

また、このペイロードには、TanStack攻撃で記録した手法を模倣したオプションの依存関係も追加されています:

{
  "optionalDependencies": {
    "@antv/setup": "github:antvis/G2#7cb42f57561c321ecb09b4552802ae0ac55b3a7a"
  }
}

これは「エキゾチックな依存関係」と呼ばれることもあります。 GitHub: npmで公開されたパッケージではなく、GitHubのリポジトリやコミットを直接指すプレフィックス付きのリファレンス。これにより、攻撃者はnpmのtarballにペイロード全体を同梱することなく、インストール時に別の実行経路を確保できる。npmは依存関係 ライフサイクルスクリプトを実行するため、一見通常の依存関係に見えるパッケージであっても、全く別のリポジトリからペイロードを密かに実行することが可能になる。

ペイロードが盗むもの

このペイロードは、開発者のマシンやCI/CD 標的としています。具体的には、以下のものを探します:

  • GitHubトークン
  • npmトークン
  • GitHub Actions の OIDC トークン
  • AWSの認証情報とインスタンスのメタデータ
  • Kubernetes サービスアカウントのファイル
  • HashiCorp Vault トークン
  • SSHキーと秘密鍵
  • Dockerの認証ファイル
  • データベース接続文字列
  • 環境変数とローカルファイルシステムのシークレット

盗まれたデータは外部への流出前に暗号化されるため、ネットワークキャプチャから盗まれた平文を復元することが困難になります。また、データ流出の終端点はテレメトリURLを装っているため、ビルドシステムのログでは見落とされがちです。

このペイロードには、GitHub を利用したフォールバック機能も含まれています。有効な GitHub トークンを取得できた場合、被害者のアカウント下にリポジトリを作成し、そこに盗み出したデータをコミットすることができます。Mini Shai-Hulud キャンペーン全体を通じて、盗まれたトークンを使用して 2,700 以上の不正な GitHub リポジトリが作成されており、これらは以前の波で我々が記録したものと同様、Dune をテーマにした命名規則と逆順のキャンペーンマーカーが使用されています。

粘り強さ

ここが、今回の波がこれまでの波よりも後片付けが大変になる理由です。

ペイロードは .vscode/tasks.json および。claude/settings.json、VS Code や Claude Code の設定ファイルにバックドアを仕込む。つまり、lockfile から悪意のあるパッケージを削除するだけでは不十分だ。これらのファイルがチェックされず、クリーンアップされない限り、依存関係をロールバックした後でも、攻撃者は開発者のマシンに足場を保ち続けることになる。

伝播

ペイロードには、Mini Shai-Huludをワームたらしめるnpmの伝播ロジックが依然として含まれており、この仕組みについて改めて説明しておく価値がある。なぜなら、それがこれらの感染の広がりの速さを説明するからである。

npmトークンを盗んだ後、npmレジストリに対してそのトークンの有効性を確認し、トークン所有者が公開できるパッケージを列挙し、パッケージのtarballをダウンロードし、悪意のあるペイロードを埋め込み、 preinstall hookはバージョンを更新し、再公開します。このマルウェアは、現在の被害シークレット 盗むだけではありません。被害者の公開権限を利用して、次のパッケージ群を侵害しているのです。

こうして、このキャンペーンは拡大し続けている。侵害されたアカウント一つひとつが次の波への入り口となり、広範な投稿権限を持つ管理者が、ワームの拡散に大きな余地を与えているのだ。

TanStackブームから何が変わったのか

基本的な手口は以前と同様です。インストール時の実行、Bunベースのペイロード、難読化されたJavaScript、認証情報の窃取、GitHubの悪用、そしてnpmへの再公開といったものです。以前の分析レポートをお読みになった方なら、このアーキテクチャに見覚えがあるはずです。

会社情報 @antv サンプルではルートレベルを使用しています index.js ~ではなく router_init.js TanStackのパッケージで見られたものとは異なります。C2インフラストラクチャが変更されています。ペイロードのサイズは多少小さくなっています。IDEやAIツールの設定を通じた持続化機能は新たなものであり、注目に値します。なぜなら、これは攻撃者が、初期の侵害が駆除された後の展開についても考慮していることを意味するからです。

今回が、私たちが追跡してきた3回目の大きな波となります。4月のわずか数個のSAPパッケージから、TanStackの波では169個のパッケージへと増え、現在ではさらに大規模なパッケージ群となっています。波は回を重ねるごとに、その速度と規模が拡大しています。

なぜ迅速な検知だけでは不十分なのか

悪意のあるパッケージが公開された後、どれほど迅速に検知できるかという点に、これまで大きな注目が集まってきました。場合によっては数分ということもあります。それは安心できる話に聞こえますが、肝心な問題を見落としています。

これらのパッケージは、インストール時にコードを実行します。A preinstall hookは次の間に実行されます npm install……パッケージが完全に展開される前に。もし開発者やCIランナーが、公開から検出までの間に改ざんされたバージョンをインストールしてしまった場合、その時点でペイロードはすでに実行され、認証情報はすでにマシンから流出していることになる。スキャナーがそのパッケージを検知する前に、被害はすでに発生しているのだ。

迅速な検出はインシデント対応に役立ちます。これにより、今後どのバージョンを避けるべきかがわかります。しかし、発生直後の数分間にそのパッケージをインストールした開発者やビルドシステムを保護するものではありません。

より効果的な防御策は、十分に検証されていないパッケージのバージョンを絶対にインストールしないことです。パッケージの公開時期に基づいてブロックし、一定時間または日数以内に公開されたバージョンのインストールを拒否することで、検知型のアプローチでは防ぎきれない脆弱性を塞ぐことができます。これはシンプルな対策ですが、実際にペイロードの実行を防ぐことができる方法です。

検知と緩和

もし、パッケージの更新を有効期限に基づいてブロックしていなかったために、改ざんされたバージョンが環境内に侵入してしまった場合は、まずロックファイルとパッケージキャッシュを確認してください。

影響を受ける名前空間とパッケージを検索する:

  • @antv/
  • @lint-md/
  • @openclaw-cn/
  • @starmind/
  • React用ECharts
  • timeago.js
  • サイズセンサー
  • canvas-nest.js

ペイロードファイルと依存関係マーカーを検索します:

  • preinstall ~を含むフック bun run index.js
  • @antv/設定
  • github:antvis/G2#7cb42f57561c321ecb09b4552802ae0ac55b3a7a

開発者のマシンに永続化アーティファクトが残っていないか確認してください:

  • .vscode/tasks.json 予期しないタスク定義の場合
  • .claude/settings.json 予期せぬ設定変更に対して

以下の宛先への送信ネットワークトラフィックをブロックする:

  • t.m-kosche.com

CIログで以下を検索:

  • 実行中に予期せぬBunが発生しました npm install
  • 以下の依存関係に関するオプションの失敗 @antv/設定
  • 依存関係のインストール中のアウトバウンド接続
  • 公開すべきではなかったワークフローからのnpm公開アクティビティ
  • 予期しないステップ中のGitHub ActionsによるOIDCトークンのリクエスト

開発者のマシンやCIランナーで、セキュリティ上の問題があるパッケージのバージョンが実行されていた場合は、シークレット 更新してください。npmトークンだけに留まらず、他の要素についても同様に対処してください。

回転させるか、確認する:

  • npmトークンとパッケージ公開権限
  • GitHub PATs と GitHub Actionsシークレット
  • AWSの認証情報
  • Kubernetes サービスアカウントのトークン
  • Vaultトークン
  • SSH鍵
  • Dockerの認証情報
  • デプロイメントシークレット

また、最近のnpm公開履歴やGitHub Actionsの実行履歴も監査してください。TanStackに関するレポートで指摘したように、有効な来歴記録があっても、ビルドが安全であったことを証明するものではありません。

侵害の痕跡

ネットワーク指標:

  • t[.]m-kosche[.]com

パッケージマーカー:

  • @antv/設定
  • github:antvis/G2#7cb42f57561c321ecb09b4552802ae0ac55b3a7a
  • preinstall スクリプトの実行中 bun run index.js
  • 通常のパッケージ内容とは別に、ルートレベルのペイロードファイルが含まれている

永続化アーティファクト:

  • .vscode/tasks.json
  • .claude/settings.json

キャンペーンマーカー:

  • GitHub上の『デューン』をテーマにしたリポジトリ名(2,700件以上確認)
  • 逆転 シャイ・ハルド リポジトリの説明文に含まれる文字列
  • 結果/ 攻撃者が作成したリポジトリ内のディレクトリ

SAPおよびTanStackの波で以前に記録された指標は、引き続き有効です。過去の波におけるIOCの完全なリストについては、当社の TanStackに関するレポートをご覧ください。

まとめ

Mini Shai-Huludは、npmエコシステムへの浸透をさらに深めています。その波は回を重ねるごとに大きくなっており、 @antv これらのパッケージにより、これまでのフェーズで導入されたルーティング、エンタープライズ、AI関連のパッケージに加え、データ可視化ツールも対象範囲に含まれるようになった。IDEおよびAIツールの永続化機能が追加されたことで、不要な依存関係を削除するだけでは、環境のクリーンアップが不十分となる。

影響を受けるパッケージのいずれかがご自身の環境で実行されていた場合は、シークレット ローシークレット 、永続化アーティファクトが削除され、直近の公開履歴が確認されるまで、そのマシンまたはランナーを侵害されたものとみなしてください。

方法 Aikido がこれを防ぐ

もしあなたが Aikido ユーザーの方は、中央フィードを確認し、マルウェア関連の問題でフィルタリングしてください。これにより、100/100の重大な問題として表示されます。 Aikido は毎晩再スキャンを行いますが、今すぐ手動で再スキャンを実行することを推奨します。本キャンペーンに特化した侵害の兆候(IoC)を検出するためのルールを追加しました。また、影響を受けるパッケージを認識できるようマルウェアAIを学習させました。このルールは、本キャンペーンに関連する特殊な依存関係、ライフサイクルフック、およびbun実行手法を具体的に追跡しています。

事後の検知だけでなく、真の予防のために、 Aikido は、導入時の問題に直接対処する2つの層を提供しています。

Aikido Chain(オープンソース)は、npm、pnpm、およびyarnのコマンドをインターセプトし、インストール前に Aikido データベースと照合してパッケージを検証します。これにより、侵害されたパッケージがインストールフックを実行する前にブロックされます。パッケージがフラグ付けされている場合や、信頼できるほど十分に検証されていない場合は、インストールされません。

AikidoAikidoのデバイス保護機能は、セキュリティチームに対し、組織内の開発者マシン上で実行されている依存関係 拡張機能に関するリアルタイムの可視性を提供します。この機能は、パッケージの公開時期に基づくブロックなどのポリシーを適用するため、数分前に公開されたばかりのバージョンが開発者マシンにインストールされることを未然に防ぎます。万が一、何らかのパッケージがすり抜けてしまった場合でも、その影響範囲を即座に封じ込めることが可能です。

まだ会員でない場合は Aikido をご利用でない場合は、 アカウントを作成してリポジトリを連携できます。マルウェア対策機能は無料プランに含まれており、クレジットカードは不要です。

付録:影響を受けるパッケージとバージョン

当チームがMini Shai-Huludの全ウェーブにおいて特定したパッケージおよびバージョンの最新リストです。このリストには、SAP、TanStack、および@antvの各ウェーブに含まれるパッケージが含まれています。

  • @antv/a8: 0.1.1, 0.2.1
  • @antv/adjust: 0.3.5、0.4.5
  • @antv/algorithm: 0.2.26, 0.3.26
  • @antv/async-hook: 2.3.9、2.4.9
  • @antv/attr: 0.4.5, 0.5.5
  • @antv/ava: 3.5.1、3.6.1
  • @antv/ava-react: 3.4.2、3.5.2
  • @antv/awards: 0.1.9, 0.2.9
  • @antv/calendar-heatmap: 1.2.2、1.3.2
  • @antv/chart-linter: 1.2.6、1.3.6
  • @antv/chart-node-g6: 0.1.4, 0.2.4
  • @antv/chart-visualization-skills: 0.2.3, 0.3.3
  • @antv/ckb: 2.1.4、2.2.4
  • @antv/color-schema: 0.3.3, 0.4.3
  • @antv/color-util: 2.1.6, 2.2.6
  • @antv/component: 2.2.11, 2.3.11
  • @antv/coord: 0.5.7, 0.6.7
  • @antv/d3-color: 1.1.0、1.2.0
  • @antv/d3-interpolate: 1.1.3, 1.2.3
  • @antv/data-samples: 1.1.1、1.2.1
  • @antv/data-set: 0.12.8, 0.13.8
  • @antv/data-wizard: 2.1.4、2.2.4
  • @antv/dipper-component: 0.1.4, 0.2.4
  • @antv/dipper-hooks: 0.3.1、0.4.1
  • @antv/dipper-map: 1.1.10、1.2.10
  • @antv/dom-util: 2.1.4、2.2.4
  • @antv/dumi-theme-antv: 0.10.4, 0.9.4
  • @antv/dw-analyzer: 1.2.5、1.3.5
  • @antv/dw-random: 1.2.7、1.3.7
  • @antv/dw-transform: 1.2.7, 1.3.7
  • @antv/dw-util: 1.2.4、1.3.4
  • @antv/event-emitter: 0.2.3, 0.3.3
  • @antv/expr: 1.1.2、1.2.2
  • @antv/f-charts: 0.1.0, 0.2.0
  • @antv/f-engine: 1.11.0、1.12.0
  • @antv/f-lottie: 1.11.0、1.12.0
  • @antv/f-my: 1.11.0、1.12.0
  • @antv/f-react: 1.11.0、1.12.0
  • @antv/f-test-utils: 1.1.9, 1.2.9
  • @antv/f-vue: 1.11.0、1.12.0
  • @antv/f-wx: 1.11.0、1.12.0
  • @antv/f2: 5.15.0、5.16.0
  • @antv/f2-algorithm: 5.8.0、5.9.0
  • @antv/f2-canvas: 1.1.5、1.2.5
  • @antv/f2-context: 0.1.1, 0.2.1
  • @antv/f2-graphic: 0.1.16, 0.2.16
  • @antv/f2-my: 4.1.52, 4.2.52
  • @antv/f2-react: 5.15.0、5.16.0
  • @antv/f2-site: 4.1.42、4.2.42
  • @antv/f2-vue: 4.1.33, 4.2.33
  • @antv/f2-wordcloud: 5.15.0、5.16.0
  • @antv/f2-wx: 4.1.51, 4.2.51
  • @antv/f6: 0.1.19, 0.2.19
  • @antv/f6-alipay: 0.1.7、0.2.7
  • @antv/f6-core: 0.1.2、0.2.2
  • @antv/f6-element: 0.1.1, 0.2.1
  • @antv/f6-hammerjs: 0.1.2、0.2.2
  • @antv/f6-plugin: 1.1.6、1.2.6
  • @antv/f6-ui: 1.1.3、1.2.3
  • @antv/f6-wx: 0.1.7, 0.2.7
  • @antv/g: 6.4.1、6.5.1
  • @antv/g-base: 0.6.16, 0.7.16
  • api: 2.1.45, 2.2.45
  • @antv/g-canvas: 2.3.0、2.4.0
  • @antv/g-canvaskit: 1.2.1、1.3.1
  • @antv/g-compat: 1.1.11、1.2.11
  • @antv/g-components: 2.1.42, 2.2.42
  • api: 1.1.38, 1.2.38
  • api: 1.1.38, 1.2.38
  • api: 1.7.13、1.8.13
  • api: 2.1.42, 2.2.42
  • @antv/g-gesture: 3.1.42, 3.2.42
  • @antv/g-image-exporter: 1.1.42, 1.2.42
  • @antv/g-layout-blocklike: 1.8.49, 1.9.49
  • @antv/g-lite: 2.8.0、2.9.0
  • @antv/g-lottie-player: 1.2.1、1.3.1
  • @antv/g-math: 3.2.0、3.3.0
  • @antv/g-mobile: 1.2.5、1.3.5
  • @antv/g-mobile-canvas: 1.2.1、1.3.1
  • @antv/g-mobile-canvas-element: 1.1.42, 1.2.42
  • @antv/g-mobile-svg: 1.2.1、1.3.1
  • @antv/g-mobile-webgl: 1.2.1, 1.3.1
  • @antv/g-pattern: 2.1.42, 2.2.42
  • @antv/g-perf: 1.1.0、1.2.0
  • @antv/g-plugin-3d: 2.2.1、2.3.1
  • @antv/g-plugin-a11y: 1.5.1、1.6.1
  • @antv/g-plugin-annotation: 1.3.0、1.4.0
  • @antv/g-plugin-box2d: 2.2.1, 2.3.1
  • @antv/g-plugin-canvas-path-generator: 2.2.26, 2.3.26
  • @antv/g-plugin-canvas-picker: 2.4.1, 2.5.1
  • @antv/g-plugin-canvas-renderer: 2.6.1、2.7.1
  • @antv/g-plugin-canvaskit-renderer: 2.4.1, 2.5.1
  • @antv/g-plugin-control: 2.2.1、2.3.1
  • @antv/g-plugin-css-select: 2.2.1、2.3.1
  • @antv/g-plugin-device-renderer: 2.7.1、2.8.1
  • @antv/g-plugin-dom-interaction: 2.2.31, 2.3.31
  • @antv/g-plugin-dragndrop: 2.2.1、2.3.1
  • @antv/g-plugin-gesture: 2.2.1, 2.3.1
  • @antv/g-plugin-gpgpu: 1.10.20, 1.11.20
  • @antv/g-plugin-html-renderer: 2.4.1、2.5.1
  • @antv/g-plugin-image-loader: 2.4.1, 2.5.1
  • @antv/g-plugin-matterjs: 2.2.1、2.3.1
  • @antv/g-plugin-mobile-interaction: 1.1.42, 1.2.42
  • @antv/g-plugin-physx: 2.2.1、2.3.1
  • @antv/g-plugin-rough-canvas-renderer: 2.2.1, 2.3.1
  • @antv/g-plugin-rough-svg-renderer: 2.2.1, 2.3.1
  • @antv/g-plugin-svg-picker: 2.1.46, 2.2.46
  • @antv/g-plugin-svg-renderer: 2.5.1, 2.6.1
  • @antv/g-plugin-webgl-device: 1.10.17, 1.11.17
  • @antv/g-plugin-webgl-renderer: 1.1.26, 1.2.26
  • @antv/g-plugin-webgpu-device: 1.10.17, 1.11.17
  • @antv/g-plugin-yoga: 2.4.1、2.5.1
  • @antv/g-plugin-zdog-canvas-renderer: 2.2.1, 2.3.1
  • @antv/g-plugin-zdog-svg-renderer: 2.2.1, 2.3.1
  • @antv/g-shader-components: 2.1.0、2.2.0
  • @antv/g-svg: 2.2.1、2.3.1
  • api: 2.2.32, 2.3.32
  • @antv/g-web-components: 2.2.1、2.3.1
  • @antv/g-webgl: 2.2.1、2.3.1
  • @antv/g-webgl-compute: 0.1.1, 0.2.1
  • @antv/g-webgpu: 2.2.1、2.3.1
  • @antv/g-webgpu-compiler: 0.8.2, 0.9.2
  • @antv/g-webgpu-core: 0.8.2、0.9.2
  • @antv/g-webgpu-engine: 0.8.2、0.9.2
  • @antv/g-webgpu-raytracer: 0.6.1, 0.7.1
  • @antv/g-webgpu-unitchart: 0.6.1, 0.7.1
  • @antv/g2: 5.5.8、5.6.8
  • @antv/g2-brush: 0.1.2, 0.2.2
  • @antv/g2-extension-3d: 0.3.0, 0.4.0
  • @antv/g2-extension-ava: 0.3.0, 0.4.0
  • @antv/g2-extension-plot: 0.3.2, 0.4.2
  • @antv/g2-plugin-slider: 2.2.1、2.3.1
  • @antv/g2-ssr: 0.3.0, 0.4.0
  • @antv/g2plot: 2.5.35, 2.6.35
  • @antv/g2plot-schemas: 1.3.2、1.4.2
  • @antv/g6: 5.2.1、5.3.1
  • @antv/g6-alipay: 0.1.1, 0.2.1
  • @antv/g6-cli: 0.1.4, 0.2.4
  • @antv/g6-core: 0.10.24, 0.9.24
  • @antv/g6-editor: 1.3.0、1.4.0
  • @antv/g6-element: 0.10.25, 0.9.25
  • @antv/g6-extension-3d: 0.2.23, 0.3.23
  • @antv/g6-extension-react: 0.3.7, 0.4.7
  • @antv/g6-mobile: 0.2.2、0.3.2
  • @antv/g6-pc: 0.10.25, 0.9.25
  • @antv/g6-plugin: 0.10.25, 0.9.25
  • @antv/g6-plugin-map-view: 0.1.4, 0.2.4
  • @antv/g6-plugins: 1.1.9、1.2.9
  • @antv/g6-react-node: 1.5.8, 1.6.8
  • @antv/g6-ssr: 0.2.1、0.3.1
  • @antv/g6-wx: 0.1.1, 0.2.1
  • @antv/gatsby-theme: 0.2.0, 0.3.0
  • @antv/geo-coord: 1.1.8, 1.2.8
  • @antv/gi-assets-advance: 2.6.22, 2.7.22
  • @antv/gi-assets-algorithm: 2.4.19, 2.5.19
  • @antv/gi-assets-basic: 2.5.40, 2.6.40
  • @antv/gi-assets-galaxybase: 1.3.15, 1.4.15
  • @antv/gi-assets-graphscope: 2.2.15、2.3.15
  • @antv/gi-assets-hugegraph: 1.2.15, 1.3.15
  • @antv/gi-assets-janusgraph: 1.2.15, 1.3.15
  • @antv/gi-assets-neo4j: 2.2.15、2.3.15
  • @antv/gi-assets-scene: 2.3.21, 2.4.21
  • @antv/gi-assets-tugraph: 2.2.15, 2.3.15
  • @antv/gi-assets-tugraph-analytics: 0.3.15, 0.4.15
  • @antv/gi-assets-xlab: 0.2.30, 0.3.30
  • @antv/gi-cli: 1.3.11、1.4.11
  • @antv/gi-common-components: 1.4.16、1.5.16
  • @antv/gi-mock-data: 1.1.5, 1.2.5
  • @antv/gi-public-data: 1.1.1、1.2.1
  • @antv/gi-sdk: 3.1.0、3.2.0
  • @antv/gi-sdk-app: 1.3.10、1.4.10
  • @antv/gi-theme-antd: 0.7.11, 0.8.11
  • @antv/github-config-cli: 0.2.0, 0.3.0
  • @antv/gl-matrix: 2.8.1、2.9.1
  • @antv/gpt-vis: 1.1.0、1.2.0
  • @antv/gpt-vis-ssr: 0.4.7, 0.5.7
  • @antv/graphin: 3.1.5、3.2.5
  • @antv/graphin-components: 2.5.1, 2.6.1
  • @antv/graphin-graphscope: 1.1.5、1.2.5
  • @antv/graphin-icons: 1.1.0、1.2.0
  • @antv/graphlib: 2.1.4、2.2.4
  • @antv/hierarchy: 0.8.1、0.9.1
  • @antv/インフォグラフィック:2019年3月、2019年4月
  • @antv/insight-component: 1.1.0、1.2.0
  • @antv/interaction: 0.2.5, 0.3.5
  • @antv/istanbul: 0.1.0, 0.2.0
  • @antv/knowledge: 1.2.4、1.3.4
  • @antv/l7: 2010年2月26日、2010年2月27日
  • @antv/l7-component: 2.26.10, 2.27.10
  • @antv/l7-composite-layers: 0.18.1, 0.19.1
  • @antv/l7-core: 2.26.10, 2.27.10
  • @antv/l7-district: 2012年4月2日、2012年5月2日
  • @antv/l7-draw: 3.2.5, 3.3.5
  • @antv/l7-editor: 1.2.13、1.3.13
  • @antv/l7-extension-g-layer: 1.1.0、1.2.0
  • @antv/l7-layers: 2010年2月26日, 2010年2月27日
  • @antv/l7-leaflet: 1.1.2、1.2.2
  • @antv/l7-map: 2010年2月26日、2010年2月27日
  • @antv/l7-mapkit: 0.6.0、0.7.0
  • @antv/l7-maps: 2010年2月26日、2010年2月27日
  • @antv/l7-mini: 2.21.8, 2.22.8
  • @antv/l7-pass: 1.1.0、1.2.0
  • @antv/l7-react: 2.5.3、2.6.3
  • @antv/l7-renderer: 2.26.10, 2.27.10
  • @antv/l7-scene: 2010年2月26日、2010年2月27日
  • @antv/l7-source: 2.26.10, 2.27.10
  • @antv/l7-three: 2010年2月26日、2010年2月27日
  • @antv/l7-utils: 2.26.10, 2.27.10
  • @antv/l7plot: 0.6.11, 0.7.11
  • @antv/l7plot-component: 0.1.11, 0.2.11
  • @antv/larkmap: 1.6.1、1.7.1
  • @antv/layout-gpu: 1.2.7, 1.3.7
  • @antv/layout-wasm: 1.5.2、1.6.2
  • @antv/li-aiearth-assets: 0.5.7, 0.6.7
  • @antv/li-analysis-assets: 1.10.1, 1.11.1
  • @antv/li-core-assets: 1.4.7, 1.5.7
  • @antv/li-editor: 1.7.1、1.8.1
  • @antv/li-p2: 1.10.2、1.9.2
  • @antv/li-sam-assets: 0.2.4, 0.3.4
  • @antv/li-sdk: 1.6.1、1.7.1
  • @antv/lite-insight: 2.2.1、2.3.1
  • @antv/matrix-util: 3.1.4、3.2.4
  • @antv/mcp-server-antv: 0.2.8、0.3.8
  • @antv/mcp-server-chart: 0.10.10, 0.11.10
  • @antv/my-f2: 2.2.7, 2.3.7
  • @antv/my-f2-pc: 0.2.1, 0.3.1
  • @antv/narrative-text-editor: 0.3.20, 0.4.20
  • @antv/narrative-text-schema: 0.4.7, 0.5.7
  • @antv/narrative-text-vis: 0.4.16, 0.5.16
  • @antv/path-util: 3.1.1、3.2.1
  • @antv/react-g: 2.2.1、2.3.1
  • @antv/s2: 2.8.1、2.9.1
  • @antv/s2-react: 2.4.1、2.5.1
  • @antv/s2-react-components: 2.2.2, 2.3.2
  • @antv/s2-ssr: 0.2.1、0.3.1
  • @antv/s2-vue: 2.3.0、2.4.0
  • @antv/sam: 0.3.0、0.4.0
  • @antv/scale: 0.6.2, 0.7.2
  • @antv/semantic-release-pnpm: 1.1.4, 1.2.4
  • @antv/smart-color: 0.3.1, 0.4.1
  • @antv/stat: 0.1.2, 0.2.2
  • @antv/t8: 0.4.0、0.5.0
  • @antv/サムネイル: 2.1.0, 2.2.0
  • @antv/thumbnails-component: 2.1.0, 2.2.0
  • @antv/torch: 1.1.6、1.2.6
  • @antv/translator: 1.1.1、1.2.1
  • @antv/util: 3.4.11、3.5.11
  • @antv/vendor: 1.1.11、1.2.11
  • @antv/vis-predict-engine: 0.2.1, 0.3.1
  • @antv/webgpu-graph: 1.1.0、1.2.0
  • @antv/word-scale-chart: 0.4.4, 0.5.4
  • @antv/wx-f2: 2.2.1, 2.3.1
  • @antv/x6: 3.2.7、3.3.7
  • @antv/x6-angular-shape: 3.1.1, 3.2.1
  • @antv/x6-common: 2.1.17, 2.2.17
  • @antv/x6-components: 0.11.7, 0.12.7
  • @antv/x6-geometry: 2.1.5, 2.2.5
  • @antv/x6-plugin-clipboard: 2.2.6, 2.3.6
  • @antv/x6-plugin-dnd: 2.2.1、2.3.1
  • @antv/x6-plugin-export: 2.2.6, 2.3.6
  • @antv/x6-plugin-history: 2.3.4、2.4.4
  • @antv/x6-plugin-keyboard: 2.3.3、2.4.3
  • @antv/x6-plugin-minimap: 2.1.7, 2.2.7
  • @antv/x6-plugin-scroller: 2.1.10, 2.2.10
  • @antv/x6-plugin-selection: 2.3.2, 2.4.2
  • @antv/x6-plugin-snapline: 2.2.7, 2.3.7
  • @antv/x6-plugin-stencil: 2.2.5, 2.3.5
  • @antv/x6-plugin-transform: 2.2.8, 2.3.8
  • @antv/x6-react: 0.2.26, 0.3.26
  • @antv/x6-react-components: 2.1.9, 2.2.9
  • @antv/x6-react-shape: 3.1.1, 3.2.1
  • @antv/x6-vector: 1.5.2、1.6.2
  • @antv/x6-vue-shape: 3.1.2, 3.2.2
  • @antv/x6-vue3-shape: 1.1.0, 1.2.0
  • @antv/xflow: 2.2.13、2.3.13
  • @antv/xflow-core: 1.1.55、1.2.55
  • @antv/xflow-diff: 1.1.0、1.2.0
  • @antv/xflow-extension: 1.1.55, 1.2.55
  • @antv/xflow-hook: 1.1.55, 1.2.55
  • @beproduct/nestjs-auth: 0.1.10、0.1.11、0.1.12、0.1.13、0.1.14、 0.1.15, 0.1.16, 0.1.17, 0.1.18, 0.1.19, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9
  • @cap-js/db-service: 2.10.1
  • @cap-js/postgres: 2.2.2
  • @cap-js/sqlite: 2.2.2
  • @dirigible-ai/sdk: 0.6.2、0.6.3
  • @draftauth/client: 0.2.1、0.2.2
  • @draftauth/core: 0.13.1、0.13.2
  • @draftlab/auth: 0.24.1、0.24.2
  • @draftlab/auth-router: 0.5.1、0.5.2
  • @draftlab/db: 0.16.1、0.16.2
  • @intercom/intercom-php: 5.0.2
  • @lint-md/cli: 2.1.0、2.2.0
  • @lint-md/core: 2.1.0、2.2.0
  • @lint-md/parser: 0.1.14, 0.2.14
  • @mesadev/rest: 0.28.3
  • @mesadev/saguaro: 0.4.22
  • @mesadev/sdk: 0.28.3
  • @mistralai/mistralai: 2.2.2、2.2.3、2.2.4
  • @mistralai/mistralai-azure: 1.7.1、1.7.2、1.7.3
  • @mistralai/mistralai-gcp: 1.7.1、1.7.2、1.7.3
  • @ml-toolkit-ts/preprocessing: 1.0.2、1.0.3
  • @ml-toolkit-ts/xgboost: 1.0.3、1.0.4
  • @openclaw-cn/cli: 1.4.1
  • @openclaw-cn/feishu: 0.2.11
  • @openclaw-cn/libsignal: 2.1.1
  • @openclaw-cn/toutiao-ops: 1.2.4
  • @opensearch-project/opensearch: 3.5.3、3.6.2、3.7.0、3.8.0
  • @squawk/airport-data: 0.7.4、0.7.5、0.7.6、0.7.7、0.7.8
  • @squawk/airports: 0.6.2、0.6.3、0.6.4、0.6.5、0.6.6
  • @squawk/airspace: 0.8.1、0.8.2、0.8.3、0.8.4、0.8.5
  • @squawk/airspace-data: 0.5.3、0.5.4、0.5.5、0.5.6、0.5.7
  • @squawk/airway-data: 0.5.4、0.5.5、0.5.6、0.5.7、0.5.8
  • @squawk/airways: 0.4.2、0.4.3、0.4.4、0.4.5、0.4.6
  • @squawk/fix-data: 0.6.4、0.6.5、0.6.6、0.6.7、0.6.8
  • @squawk/fixes: 0.3.2、0.3.3、0.3.4、0.3.5、0.3.6
  • @squawk/flight-math: 0.5.4、0.5.5、0.5.6、0.5.7、0.5.8
  • @squawk/flightplan: 0.5.2、0.5.3、0.5.4、0.5.5、0.5.6
  • @squawk/geo: 0.4.4、0.4.5、0.4.6、0.4.7、0.4.8
  • @squawk/icao-registry: 0.5.2、0.5.3、0.5.4、0.5.5、0.5.6
  • @squawk/icao-registry-data: 0.8.4、0.8.5、0.8.6、0.8.7、0.8.8
  • @squawk/mcp: 0.9.1、0.9.2、0.9.3、0.9.4、0.9.5
  • @squawk/navaid-data: 0.6.4、0.6.5、0.6.6、0.6.7、0.6.8
  • @squawk/navaids: 0.4.2、0.4.3、0.4.4、0.4.5、0.4.6
  • @squawk/notams: 0.3.10、0.3.6、0.3.7、0.3.8、0.3.9
  • @squawk/procedure-data: 0.7.3、0.7.4、0.7.5、0.7.6、0.7.7
  • @squawk/procedures: 0.5.2、0.5.3、0.5.4、0.5.5、0.5.6
  • @squawk/types: 0.8.1、0.8.2、0.8.3、0.8.4、0.8.5
  • @squawk/units: 0.4.3、0.4.4、0.4.5、0.4.6、0.4.7
  • @squawk/weather: 0.5.10、0.5.6、0.5.7、0.5.8、0.5.9
  • @starmind/collector-cli: 0.3.10
  • @supersurkhet/cli: 0.0.2、0.0.3、0.0.4、0.0.5、0.0.6、0.0.7
  • @supersurkhet/sdk: 0.0.2、0.0.3、0.0.4、0.0.5、0.0.6、0.0.7
  • @tallyui/components: 1.0.1、1.0.2、1.0.3
  • @tallyui/connector-medusa: 1.0.1、1.0.2、1.0.3
  • @tallyui/connector-shopify: 1.0.1、1.0.2、1.0.3
  • @tallyui/connector-vendure: 1.0.1、1.0.2、1.0.3
  • @tallyui/connector-woocommerce: 1.0.1、1.0.2、1.0.3
  • @tallyui/core: 0.2.1、0.2.2、0.2.3
  • @tallyui/database: 1.0.1、1.0.2、1.0.3
  • @tallyui/pos: 0.1.1、0.1.2、0.1.3
  • @tallyui/storage-sqlite: 0.2.1、0.2.2、0.2.3
  • @tallyui/theme: 0.2.1、0.2.2、0.2.3
  • @tanstack/arktype-adapter: 1.166.12, 1.166.15
  • @tanstack/eslint-plugin-router: 1.161.12, 1.161.9
  • @tanstack/eslint-plugin-start: 0.0.4, 0.0.7
  • @tanstack/history: 1.161.12, 1.161.9
  • @tanstack/nitro-v2-vite-plugin: 1.154.12, 1.154.15
  • @tanstack/react-router: 1.169.5, 1.169.8
  • @tanstack/react-router-devtools: 1.166.16、1.166.19
  • @tanstack/react-router-ssr-query: 1.166.15, 1.166.18
  • @tanstack/react-start: 1.167.68, 1.167.71
  • @tanstack/react-start-client: 1.166.51, 1.166.54
  • @tanstack/react-start-rsc: 0.0.47, 0.0.50
  • @tanstack/react-start-server: 1.166.55, 1.166.58
  • @tanstack/router-cli: 1.166.46, 1.166.49
  • @tanstack/router-core: 1.169.5, 1.169.8
  • @tanstack/router-devtools: 1.166.16、1.166.19
  • @tanstack/router-devtools-core: 1.167.6、1.167.9
  • @tanstack/router-generator: 1.166.45, 1.166.48
  • @tanstack/router-plugin: 1.167.38, 1.167.41
  • @tanstack/router-ssr-query-core: 1.168.3, 1.168.6
  • @tanstack/router-utils: 1.161.11, 1.161.14
  • @tanstack/router-vite-plugin: 1.166.53, 1.166.56
  • @tanstack/solid-router: 1.169.5, 1.169.8
  • @tanstack/solid-router-devtools: 1.166.16, 1.166.19
  • @tanstack/solid-router-ssr-query: 1.166.15, 1.166.18
  • @tanstack/solid-start: 1.167.65, 1.167.68
  • @tanstack/solid-start-client: 1.166.50, 1.166.53
  • @tanstack/solid-start-server: 1.166.54, 1.166.57
  • @tanstack/start-client-core: 1.168.5, 1.168.8
  • @tanstack/start-fn-stubs: 1.161.12, 1.161.9
  • @tanstack/start-plugin-core: 1.169.23, 1.169.26
  • @tanstack/start-server-core: 1.167.33, 1.167.36
  • @tanstack/start-static-server-functions: 1.166.44, 1.166.47
  • @tanstack/start-storage-context: 1.166.38, 1.166.41
  • @tanstack/valibot-adapter: 1.166.12, 1.166.15
  • @tanstack/virtual-file-routes: 1.161.10, 1.161.13
  • @tanstack/vue-router: 1.169.5, 1.169.8
  • @tanstack/vue-router-devtools: 1.166.16, 1.166.19
  • @tanstack/vue-router-ssr-query: 1.166.15, 1.166.18
  • @tanstack/vue-start: 1.167.61, 1.167.64
  • @tanstack/vue-start-client: 1.166.46, 1.166.49
  • @tanstack/vue-start-server: 1.166.50, 1.166.53
  • @tanstack/zod-adapter: 1.166.12, 1.166.15
  • @taskflow-corp/cli: 0.1.24、0.1.25、0.1.26、0.1.27、0.1.28、0.1.29
  • @tolka/cli: 1.0.2、1.0.3、1.0.4、1.0.5、1.0.6
  • @uipath/access-policy-sdk: 0.3.1
  • @uipath/access-policy-tool: 0.3.1
  • @uipath/admin-tool: 0.1.1
  • @uipath/agent-sdk: 1.0.2
  • @uipath/agent-tool: 1.0.1
  • @uipath/agent.sdk: 0.0.18
  • @uipath/aops-policy-tool: 0.3.1
  • @uipath/ap-chat: 1.5.7
  • api: 1.0.1
  • @uipath/apollo-core: 5.9.2
  • @uipath/apollo-react: 4.24.5
  • @uipath/apollo-wind: 2.16.2
  • @uipath/auth: 1.0.1
  • @uipath/case-tool: 1.0.1
  • @uipath/cli: 1.0.1
  • @uipath/codedagent-tool: 1.0.1
  • @uipath/codedagents-tool: 0.1.12
  • @uipath/codedapp-tool: 1.0.1
  • @uipath/common: 1.0.1
  • @uipath/context-grounding-tool: 0.1.1
  • @uipath/data-fabric-tool: 1.0.2
  • @uipath/docsai-tool: 1.0.1
  • @uipath/filesystem: 1.0.1
  • @uipath/flow-tool: 1.0.2
  • @uipath/functions-tool: 1.0.1
  • @uipath/gov-tool: 0.3.1
  • @uipath/identity-tool: 0.1.1
  • @uipath/insights-sdk: 1.0.1
  • @uipath/insights-tool: 1.0.1
  • @uipath/integrationservice-sdk: 1.0.2
  • @uipath/integrationservice-tool: 1.0.2
  • @uipath/llmgw-tool: 1.0.1
  • @uipath/maestro-sdk: 1.0.1
  • @uipath/maestro-tool: 1.0.1
  • @uipath/orchestrator-tool: 1.0.1
  • @uipath/packager-tool-apiworkflow: 0.0.19
  • @uipath/packager-tool-bpmn: 0.0.9
  • @uipath/packager-tool-case: 0.0.9
  • @uipath/packager-tool-connector: 0.0.19
  • @uipath/packager-tool-flow: 0.0.19
  • @uipath/packager-tool-functions: 0.1.1
  • @uipath/packager-tool-webapp: 1.0.6
  • @uipath/packager-tool-workflowcompiler: 0.0.16
  • @uipath/packager-tool-workflowcompiler-browser: 0.0.34
  • @uipath/platform-tool: 1.0.1
  • @uipath/project-packager: 1.1.16
  • @uipath/resource-tool: 1.0.1
  • @uipath/resourcecatalog-tool: 0.1.1
  • @uipath/resources-tool: 0.1.11
  • @uipath/robot: 1.3.4
  • @uipath/rpa-legacy-tool: 1.0.1
  • @uipath/rpa-tool: 0.9.5
  • @uipath/solution-packager: 0.0.35
  • @uipath/solution-tool: 1.0.1
  • @uipath/solutionpackager-sdk: 1.0.11
  • @uipath/solutionpackager-tool-core: 0.0.34
  • @uipath/tasks-tool: 1.0.1
  • @uipath/telemetry: 0.0.7
  • @uipath/test-manager-tool: 1.0.2
  • @uipath/tool-workflowcompiler: 0.0.12
  • @uipath/traces-tool: 1.0.1
  • @uipath/ui-widgets-multi-file-upload: 1.0.1
  • @uipath/uipath-python-bridge: 1.0.1
  • @uipath/vertical-solutions-tool: 1.0.1
  • @uipath/vss: 0.1.6
  • @uipath/widget.sdk: 1.2.3
  • agentwork-cli: 0.1.4, 0.1.5
  • ai-figure: 0.5.0, 0.6.0
  • amapcn: 0.2.2, 0.3.2
  • ast-plugin: 0.1.7, 0.2.7
  • babel-plugin-version: 0.3.3, 0.4.3
  • boring-avatars-vanilla: 1.1.2, 1.2.2
  • byte-parser: 1.1.0、1.2.0
  • canvas-nest.js: 2.1.4、2.2.4
  • cmux-agent-mcp: 0.1.3、0.1.4、0.1.5、0.1.6、0.1.7、0.1.8
  • クロスステッチ:1.1.3、1.1.4、1.1.5、1.1.6、1.1.7
  • echarts-for-react: 3.1.7、3.2.7
  • filesize.js: 2.1.0、2.2.0
  • 修正版: 1.1.2、1.2.2
  • gantt-for-react: 0.3.0, 0.4.0
  • git-branch-selector: 1.3.3、1.3.4、1.3.5、1.3.6、1.3.7
  • git-git-git: 1.0.10、1.0.11、1.0.12、1.0.8、1.0.9
  • guardrails-ai: 0.10.1
  • intercom-client: 7.0.4
  • jest-canvas-mock: 2.6.3, 2.7.3
  • jest-date-mock: 1.1.11, 1.2.11
  • jest-electron: 0.2.12, 0.3.12
  • jest-expect: 0.1.1, 0.2.1
  • jest-less-loader: 0.3.0, 0.4.0
  • jest-random-mock: 1.1.0, 1.2.0
  • jest-url-loader: 0.2.0, 0.3.0
  • lightning: 2.6.2、2.6.3
  • limit-size: 0.2.4, 0.3.4
  • lint-md: 0.3.0, 0.4.0
  • lint-md-cli: 0.2.2, 0.3.2
  • mbt: 1.2.48
  • mcp-echarts: 0.8.1、0.9.1
  • mcp-mermaid: 0.5.1, 0.6.1
  • mistralai: 2.4.6
  • miz: 1.1.1、1.2.1
  • ml-toolkit-ts: 1.0.4、1.0.5
  • nextmove-mcp: 0.1.3、0.1.4、0.1.5、0.1.6、0.1.7
  • onfire.js: 2.1.1、2.2.1
  • openclaw-cn: 0.3.0
  • react-adsense: 0.2.0, 0.3.0
  • relationship.js: 1.3.9、1.4.9
  • ribbon.js: 1.1.2
  • safe-action: 0.8.3、0.8.4
  • サイズセンサー:1.1.4、1.2.4
  • slice.js: 1.2.1、1.3.1
  • timeago-react: 3.1.7、3.2.7
  • timeago.js: 4.1.2、4.2.2
  • ts-dna: 3.0.1、3.0.2、3.0.3、3.0.4、3.0.5
  • uri-parse: 1.1.0、1.2.0
  • 文字幅:1.1.1、1.2.1
  • api: 0.8.1、0.8.2、0.8.3、0.8.4
  • xmorse: 1.1.0、1.2.0
共有:

https://www.aikido.dev/blog/mini-shai-hulud-antv-npm-supply-chain-attack

ニュースを購読する

4.7/5
誤検知にうんざりしていませんか?
10万人以上のユーザーと同様に Aikido をお試しください。
今すぐ始める
パーソナライズされたウォークスルーを受ける

10万以上のチームに信頼されています

今すぐ予約
アプリをスキャンして IDORs と実際の攻撃パスを検出します

10万以上のチームに信頼されています

スキャンを開始
AI がどのようにアプリをペンテストするかをご覧ください

10万以上のチームに信頼されています

テストを開始

今すぐ、安全な環境へ。

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要です。 | スキャン結果は32秒で表示されます。