侵害されたNx Console VS Code拡張機能が開発者とクラウド認証情報を盗む

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/

ソース: gbhackers.com