GitHub内部リポジトリ流出、Nx Console悪性版が入口に — 攻撃者主張の約3,800件と調査が一致、TeamPCPのサプライチェーン攻撃が連鎖中

この記事は約14分で読めます。

Microsoft 傘下の GitHub は2026年5月20日、自社の内部リポジトリが外部に流出したインシデントを公表しました。CISO の Alexis Wales 氏が公式ブログで発表した内容によれば、攻撃者が主張する「約3,800件のリポジトリ」という規模は、GitHub の現時点の調査と方向性が一致するとされています。攻撃の入口は、GitHub 従業員の開発端末にインストールされていた悪性版の VS Code 拡張機能 Nx Console(nrwl.angular-console)v18.95.0 でした。攻撃の背後には、複数のセキュリティベンダーが TeamPCP と呼ぶ脅威アクターが関与していると報じられています。一部の分析では、Google Threat Intelligence Group の追跡名 UNC6780 と関連付けられていますが、本稿では主に公開報道・ベンダー分析で広く使われている TeamPCP という名称で整理します。TeamPCP は2026年に入ってから Trivy、Checkmarx、LiteLLM、Bitwarden CLI、TanStack、そして今回の Nx Console / GitHub と、開発者ツールに特化した一連のサプライチェーン攻撃を立て続けに実行してきた脅威グループです。本記事では、GitHub・Nx 公式発表および各セキュリティベンダーの分析に基づき、攻撃の時系列、技術的構造、そして開発者ツール市場の構造的な問題を実務視点で整理します。

事象の経緯:18分間のマーケットプレイス露出と、その先に起きたこと

本件は2つのフェーズに分けて理解する必要があります。第1フェーズが Nx Console 拡張機能の侵害、第2フェーズが GitHub 内部システムへの侵入です。

第1フェーズは2026年5月18日に発生しました。Nx の開発元 Narwhal Technologies の発表によれば、Nx Console メンテナの1人の GitHub アカウントが、その直前の TanStack サプライチェーン攻撃の影響で侵害されていました。攻撃者はそこから入手した認証情報を使って、Visual Studio Marketplace に悪性版の Nx Console v18.95.0 を Publish しました。配信が続いた時間は 5月18日 12:30〜12:48 UTC のわずか18分間、Nx チームが検知してから対処までの時間は約11分とされています。

ただし、VS Code を含む主要なエディタ拡張機能マーケットプレイスでは 自動更新がデフォルト有効 になっているため、この18分間の窓を開けただけで、Nx Console をインストール済みのワークスペースを開いた全ユーザーに悪性版が配信される構造になっていました。なお、悪性版は OpenVSX(VS Code 互換マーケットプレイス)でも12:33〜13:09 UTC の約36分間公開されていました。Nx Console の累計インストール数は約220万です。Nx 公式アドバイザリによれば、Microsoft および OpenVSX 側のダウンロード数はそれぞれ28件、41件と低く見積もられていた一方、Nx 側の内部分析では、攻撃から2日後までに Visual Studio Code から約6,000件の extension activation が確認されています。これは「確定被害者数」ではなく、影響可能性の規模を示す指標として扱うべき数値です。OX Security の研究者 Nir Zadok 氏の分析によれば、悪性版は起動時に1つのシェルコマンドを実行し、nrwl/nx 公式リポジトリに仕込まれた特定のコミットから別のパッケージをダウンロード・実行する仕組みでした。コマンドは「ルーチンな MCP セットアップタスク」を装っていたため、簡単な目視チェックでは検知が難しかったとされています。

第2フェーズはその翌日、5月19日に表面化しました。Nx Console の悪性版をインストールしていた GitHub 従業員の端末では、GitHub トークン、npm トークン、AWS 認証情報、1Password CLI セッション、Anthropic Claude Code 設定など、開発者端末上の幅広いクレデンシャルが悪性ペイロードの窃取対象となり得る状態でした。GitHub は流出したクレデンシャル種別の詳細な内訳を公表していませんが、攻撃者は端末から取得した認証情報を足がかりに GitHub 内部システムへ侵入したとみられます。攻撃者は約3,800件の内部リポジトリをクローンし、Breached フォーラムに「GitHub ソースコードと約4,000の内部リポジトリを最低 $50,000 で売却する」と投稿しました。GitHub は内部調査の結果、TeamPCP の主張する「約3,800件」と「方向性が一致する(directionally consistent)」と公式に確認しています。

GitHub 側の被害範囲と対応

GitHub の CISO Alexis Wales 氏の声明によれば、被害は GitHub の内部リポジトリ(GitHub 社内で利用されているコード資産)に限定されており、顧客の Enterprise・Organization・個人リポジトリには影響していないと現時点で評価されています。ただし同時に、「一部の GitHub 内部リポジトリには顧客サポートのやり取りの抜粋など、顧客情報を含むものがある」とも明記されています。影響が判明した場合は、確立済みのインシデントレスポンス・通知チャネルを通じて顧客に直接連絡する方針が示されています。

GitHub 側がとった対応は、(1) 侵害された従業員端末の隔離、(2) 悪性 VS Code 拡張機能の削除、(3) 高インパクトなクレデンシャル(暗号鍵を含む)の優先的なローテーション、(4) 追加の侵入活動がないかの継続的な監視——でした。インシデント検知から GitHub 公式の確認声明までの所要時間は約5時間で、これは「TeamPCP がフォーラム投稿してから GitHub が公式声明を出すまで」の時間です。一方、TeamPCP に関連すると目されるX/Twitter アカウント(xploitrsturtle2)は GitHub の対応について「GitHub は何時間も知っていたのに公表を遅らせた」と批判する投稿を行っています。GitHub 側はインシデント検知から含む内部的なタイムラインの詳細は現時点で公開していません。

TeamPCP(UNC6780)の侵害シリーズ:2026年だけで5件以上

TeamPCP は Google Threat Intelligence Group(GTIG)が UNC6780 として追跡する脅威グループで、2026年に入ってからオープンソースセキュリティツールおよび AI ミドルウェアを集中的に標的にしています。Aikido Security の Mackenzie Jackson 氏が整理した2026年の主な侵害シリーズは次の通りです。

  • Trivy(Aqua Security):脆弱性スキャナを GitHub Actions 経由で侵害、Aqua Security の Docker イメージと Checkmarx KICS プロジェクトに連鎖
  • LiteLLM:Trivy 侵害から派生し、LiteLLM PyPI パッケージが汚染され、数万台のデバイスに「TeamPCP Cloud Stealer」と呼ばれるインフォスティーラーが感染
  • Checkmarx(第1回):GitHub Actions ワークフローと OpenVSX 拡張機能を侵害、CI/CD シークレットを窃取
  • Checkmarx(第2回):Jenkins AST Scanner プラグインのバージョン2026.5.09 にバックドアを仕込み、GitHub リポジトリも書き換え
  • Bitwarden CLI:オープンソースのパスワード管理 CLI が侵害
  • TanStack:JavaScript エコシステムの主要ライブラリ群が侵害、その後 OpenAI、Mistral AI、Grafana Labs を含む派生被害が確認
  • Nx Console / GitHub(本件):上記 TanStack 攻撃で漏洩したクレデンシャル経由で Nx Console メンテナが侵害され、それを起点に GitHub 内部システムが侵害

この一連の流れで特に重要なのは、「侵害が次の侵害の足がかりになる自己持続的なサイクル」が形成されている点です。TanStack 攻撃で漏洩したクレデンシャルが Nx Console メンテナのアカウント侵害につながり、Nx Console 経由で配布された認証情報窃取マルウェアが GitHub 従業員端末から GitHub 内部システムへの入口になり、さらに同時並行で Microsoft の Durable Task SDK(durabletask、月間417,000ダウンロード)にも Mini Shai-Hulud ワーム経由で派生しています。Wiz の分析によれば、durabletask の侵害も「攻撃者が以前の攻撃で侵害した GitHub アカウントから、ユーザーがアクセスできるリポジトリの GitHub シークレットをダンプし、そこから PyPI トークンを使って直接公開した」というパターンで、これも同じ「クレデンシャル連鎖」の構造に当てはまります。

技術的な要点:自動更新がプッシュチャネルになる構造

本件で最も注目すべき技術・構造的問題は、Aikido Security の Raphael Silva 氏の指摘です。要約すると次の通りです。

  • VS Code、Cursor、その他主要なエディタ拡張機能マーケットプレイスは、自動更新がデフォルト有効である
  • これは単独で考えれば合理的な設計判断である(多くの開発者は手動で拡張機能を更新しない)
  • しかし、敵対的・侵害された Publisher の存在を前提に置くと、自動更新は リリースを支配できる攻撃者にとって、当該拡張機能を稼働している全マシンへの直接プッシュチャネル になる
  • マーケットプレイス側は、更新が公開されてからインストール済みクライアントが取り込むまでの間に、レビューゲートや待機期間を設けていない

つまり、Publisher認証情報の窃取からマルウェア配布までのリードタイムが「ほぼゼロ」になり得る構造的問題が、本件の核心です。Nx Console の場合、悪性版が公開されてから Nx チームが検知して撤去するまでの11分間で、自動更新トリガーが発火したマシンには既にマルウェアが届いていました。これは EDR(Endpoint Detection & Response)の保護範囲外であり、Help Net Security へのコメントで Aikido が指摘したように、「セキュリティチームの大半は、開発者のマシン上にどの拡張機能やパッケージがインストールされているか、それらがどれくらい最近公開されたものか、についてゼロの可視性しか持っていない」状況にあります。

実務的な推奨アクション

本件を受けて、組織内に開発チームを持つ企業が短期的にとるべきステップは以下の通りです。

  • Nx Console 利用環境の洗い出しと対応。組織内の開発端末で nrwl.angular-console を利用していた場合、特に5月18日 12:30〜12:48 UTC の間に VS Code を起動していた、あるいは自動更新を有効にしていた端末は、認証情報の漏洩を前提として対応する必要があります。GitHub、npm、AWS、1Password、Claude Code 設定、その他開発端末上のクレデンシャルを全てローテーションすることが推奨されます。
  • durabletask Python パッケージ利用環境の確認。バージョン1.4.1〜1.4.3を使用していた環境は、完全に侵害されたものとして扱うべきです(StepSecurity・Wiz・Endor Labs 共通の見解)。AWS SSM 経由の自己増殖機能があるため、感染端末から到達可能な EC2 インスタンスにも被害が広がっている可能性があります。
  • VS Code / Cursor 等のエディタ拡張機能の自動更新ポリシーの再評価。開発生産性とのトレードオフは大きいですが、特に高リスク業務(インフラ管理、本番デプロイ権限、機密リポジトリへのアクセス)に従事する開発者については、自動更新を無効化し、手動更新前にバージョン公開日と Publisher の挙動を確認する運用への切り替えを検討する価値があります。
  • 開発者端末上のシークレット管理の見直し。GitHub トークン、AWS キー、Claude Code 設定、1Password Vault などのクレデンシャルが端末ローカルに平文または容易に復号可能な形で保存されている状態は、本件のような攻撃の前で極めて脆弱です。短期的にはハードウェアキー(YubiKey 等)の活用、長期的には Zero Standing Privilege への移行が検討対象になります。
  • SBOM および拡張機能インベントリの可視化。組織内の開発端末にどの拡張機能・パッケージがインストールされているかを継続的に把握する仕組みは、現状の多くの組織で抜けている領域です。StepSecurity、Aikido Security、Endor Labs、Wiz 等のサプライチェーンセキュリティベンダーが提供するインベントリ機能の導入は、本件のような攻撃に対する可視性確保の第一歩になります。

所感:TeamPCP が示した「信頼の連鎖」というアタックチェーン

TeamPCP の一連のキャンペーンが示しているのは、「個別のパッケージやツールの脆弱性」ではなく 「信頼の連鎖そのものが攻撃チェーンになる」 という構造的な現実です。Trivy が侵害されれば LiteLLM が侵害され、TanStack が侵害されれば Nx Console メンテナが侵害され、Nx Console が侵害されれば GitHub 内部が侵害される——というように、各侵害が次の侵害の「クレデンシャル供給源」として機能しています。これは個別ベンダーが個別の対策で対応できる範囲を超えており、エコシステム全体での「信頼の前提」の組み直しが必要なフェーズに入ったといえます。

GitHub のような「業界の基盤」がインシデントを公開的に共有し、Nx のメンテナが「もはや成立しない仮定」について業界の他メンテナと議論を始めると表明したことは、こうした構造的な見直しへの第一歩として評価できる動きです。同時に、その議論の結果が具体的な技術的・運用的な変化として現れるまでの間、攻撃者側のサイクルが先行する状況は当面続く見込みです。組織側としては、自社の開発者環境がこのサイクルの「次のリンク」にならないための対策を、待たずに進める姿勢が求められます。

主要ソース

一次ソース・公式情報

参考情報

slug: github-teampcp-nx-console-breach-3800-repos

コメント

タイトルとURLをコピーしました