概要
- nx ビルドシステムの一部バージョンに マルウェア混入 が発覚
- s1ngularity-repository というリポジトリが GitHubアカウントに自動生成
- マルウェアは ウォレットやAPIキーなどの機密情報を窃取
- Claude Code CLIやGemini CLI の存在確認後、LLMプロンプト経由で情報収集
- 影響範囲、対処法、今後の対応策について 公式アドバイザリ あり
nxビルドシステムにおけるマルウェア混入事件
- 2025年8月26日、 nx の一部バージョンに マルウェア が仕込まれた事案が発生
- s1ngularity-repository という名前で GitHubリポジトリ が自動で作成される現象
- マルウェアの主な目的 は、 ウォレット情報やAPIキー (.npmrc、環境変数など)の窃取
- 窃取した情報は results.b64 ファイルとしてリポジトリに格納
- Claude Code CLIやGemini CLI が検出されると、LLMプロンプトを通じてさらなる情報収集を実施
影響を受けるバージョン
- nx v21.5.0 ~ v21.8.0
- nx v20.6.0 ~ v20.12.0
- これらのバージョンは npmから既に削除済み
具体的な被害と挙動
- GitHub CLI を用いて s1ngularity-repository を自動作成
- 環境変数やウォレットファイル を探索・収集し、 base64で2重エンコード してアップロード
- LLMプロンプト を使い、 Linux/macOS の特定パスを再帰的にスキャンし、 ウォレット関連ファイル を収集
- .bashrc等のシェルファイル に shutdownディレクティブ を追加し、不正な動作を隠蔽
発覚から対応までのタイムライン
- 2025-08-26 18:00 PDT :不正なnxバージョン公開(v20.9.0 - v20.12.0、v21.5.0 - v21.8.0)
- 2025-08-26 20:30 PDT :最初の被害報告
- 2025-08-26 22:45 PDT :npmから該当バージョン削除
- 2025-08-26 23:45 PDT :nrwlが不正npmアカウント削除
- 2025-08-27 01:00 PDT :@nx/配下の追加パッケージも影響範囲に追加
影響確認・対処方法
- GitHub組織 で s1ngularity-repository が存在しないか確認
- semgrep による脆弱バージョン検出
semgrep --config r/oqUk5lJ/semgrep.ssc-mal-resp-2025-08-nx-build-compromised- または
nx --versionやlockfileでバージョン確認
- 対処手順
- nxを安全な最新バージョン(21.4.1)へアップデート
- s1ngularity-repository を コピー後、削除
- 漏洩した可能性のある全てのシークレットをローテーション
- GitHub、npm、SSHキー、環境変数等
- .bashrc等のshutdownディレクティブを削除
マルウェアの技術的特徴
- post-installフック で telemetry.js を実行
- プロセス環境変数 や ウォレットファイル をダンプ
- GitHub CLI を利用し、 認証トークン でリポジトリ作成
- Claude Code CLIやGemini CLI があれば、 LLMプロンプト 経由で情報収集
- 収集結果を2重base64エンコードし、GitHubリポジトリへアップロード
- LLM活用 により、 マルウェア本体の検出を困難化
NXとは
- NX は モノレポ に特化した 大規模プロジェクト向けビルドシステム
- 2.5百万人以上の開発者 が日常的に利用
- VSCode Cursor拡張等 で自動的に最新版へアップデートされる場合も多い
関連情報・参考リンク
- 公式アドバイザリ :nx security advisory
- Step Securityによる分析 :Step Securityブログ
- GitHub Issue :#32522, #32523
- Semgrep :AIを活用したSAST/SCA/シークレット検出ツール
今後の対応と注意点
- 公式アドバイザリや最新情報を随時確認
- 組織内リポジトリの監視を継続
- npm等のサプライチェーン攻撃への警戒強化
- 秘密情報管理の徹底と定期的なローテーション
- LLM等の新たな攻撃手法への理解と対策