Nx「s1ngularity」NPMサプライチェーン攻撃の調査により、数千件のアカウントトークンやリポジトリの秘密情報が漏洩するという大規模な被害が明らかになりました。
Wizの研究者による事後評価によると、Nxの侵害により、3つの異なるフェーズで2,180のアカウントと7,200のリポジトリが流出しました。
またWizは、多くの漏洩した秘密情報が依然として有効であるため、インシデントの影響範囲は依然として大きく、被害が進行中であると強調しています。
Nx「s1ngularity」サプライチェーン攻撃
Nxは、エンタープライズ規模のJavaScript/TypeScriptエコシステムで広く利用されている人気のオープンソースビルドシステムおよびモノレポ管理ツールであり、NPMパッケージインデックスで週5.5百万回以上ダウンロードされています。
2025年8月26日、攻撃者はNxリポジトリの不備なGitHub Actionsワークフローを悪用し、NPM上に悪意のあるバージョンのパッケージを公開しました。このパッケージには、インストール後に実行されるマルウェアスクリプト「telemetry.js」が含まれていました。
telemetry.jsマルウェアはLinuxおよびmacOSシステムを標的とした認証情報窃取型で、GitHubトークン、npmトークン、SSHキー、.envファイル、暗号ウォレットなどを盗み、「s1ngularity-repository」という名前の公開GitHubリポジトリに秘密情報をアップロードしようとしました。
この攻撃が特異だったのは、認証情報窃取ツールがClaude、Q、GeminiなどのAIプラットフォーム用コマンドラインツールを利用し、LLMプロンプトを使って機密情報や秘密を探索・収集した点です。

出典: Wiz
Wizによると、攻撃の各イテレーションでプロンプトが変更されており、脅威アクターがプロンプトを調整して成功率を高めていたことが示されています。
「プロンプトの進化は、攻撃者が攻撃の過程でプロンプトチューニングを急速に試行していたことを示しています。ロールプロンプトの導入や、手法の具体性のレベルが変化していることが確認できます」とWizは説明しています。
「これらの変更はマルウェアの成功に具体的な影響を与えました。たとえば、“ペネトレーションテスト”というフレーズの導入は、LLMがそのような活動への関与を拒否するという形で具体的に反映されました。」
甚大な被害範囲
攻撃の第1フェーズ(8月26日〜27日)では、バックドア付きNxパッケージが1,700人のユーザーに直接影響を与え、2,000件以上の固有の秘密情報が漏洩しました。また、感染システムから2万件のファイルが流出しました。
GitHubは攻撃者が作成したリポジトリを8時間後に削除しましたが、データはすでにコピーされていました。
8月28日〜29日(Wizが第2フェーズと定義)には、攻撃者が漏洩したGitHubトークンを使い、プライベートリポジトリをパブリックに切り替え、「s1ngularity」という文字列を含むようにリネームしました。
これにより、さらに480件のアカウント(その大半は組織)が侵害され、6,700件のプライベートリポジトリが公開されました。
第3フェーズ(8月31日開始)では、攻撃者は1つの被害組織を標的とし、2つの侵害アカウントを使ってさらに500件のプライベートリポジトリを公開しました。

出典: Wiz
Nxの対応
Nxチームは、侵害の原因がプルリクエストタイトルのインジェクションとpull_request_targetの安全でない使用の組み合わせによるものであると、GitHub上で詳細な原因分析を公開しました。
これにより、攻撃者は昇格した権限で任意のコードを実行できるようになり、Nxの公開パイプラインがトリガーされ、npm公開トークンが流出しました。
悪意のあるパッケージは削除され、侵害されたトークンは無効化・ローテーションされ、すべてのパブリッシャーアカウントで二要素認証が導入されました。
このような侵害の再発防止のため、NxプロジェクトはNPMのTrusted Publisherモデルを採用し、トークンベースの公開を廃止、PRトリガーのワークフローには手動承認を追加しました。