GitHubの内部リポジトリの持ち出し

タグ
国外
目次
  1. 経緯
    1. Nx Consoleの侵害の経路
  2. 時系列
  3. 影響範囲
  4. 対応と現状
    1. GHESの署名鍵の差し替え
    2. Nxと当局の対応
  5. 未公表の事項
  6. 注
  7. 出典
  8. 更新記録
  9. 関連記事

GitHubの2026年5月20日のブログによると、第三者が公開した不正なVS Code拡張機能で社員の端末が侵害され、GitHubは内部リポジトリだけが持ち出されたと評価した⁠[1]。攻撃者が主張する約3,800件〔注1〕のリポジトリは、これまでの調査とおおむね一致するとした⁠[1、2]。5月26日の更新では、攻撃を受けたリポジトリを考慮し、GitHub Enterprise Serverの署名鍵を含む鍵を差し替えている⁠[1]。

経緯

GitHubは、不正な拡張機能の版を削除して端末を隔離し、直ちにインシデント対応を始めたと説明した⁠[1]。

CyberScoopの5月20日の記事では、GitHubは火曜日の深夜のXへの投稿で、内部リポジトリが持ち出されたと述べた⁠[11]。この記事は、GitHubが関与した拡張機能の名前も、特定の集団への帰属も公にしていないと報じた⁠[11]。TeamPCPが、買い手が現れなければ資料を公開すると脅したとも伝えた⁠[11]。

SecurityWeekは、TeamPCPが火曜日に地下のハッキングフォーラムでGitHubの内部リポジトリ4,000件の侵害を主張し、少なくとも5万ドルで売りに出したと報じた⁠[10]。同じ記事によると、GitHubは調査を始め、約5時間後に攻撃者の主張を確認した⁠[10]。

The Hacker Newsの5月21日の記事では、GitHubは水曜日に、内部リポジトリの侵害はNx ConsoleのVS Code拡張機能の毒入りの版が関わる社員の端末の侵害の結果だったと公式に確認した⁠[14]。

Nx Consoleの侵害の経路

Nxは5月21日の事後報告で、攻撃者が正規のNxの中核の貢献者として不正な版を公開したと説明した⁠[4]。TanStackのサプライチェーン侵害で届いた認証情報を盗む不正コードが、その貢献者のGitHub CLIのOAuthトークンを持ち出していた⁠[4]。窃取から公開までの7日間、攻撃者は検知されずにNxのGitHubのリポジトリで活動した⁠[4]。根本原因としては、上流から順に4つの連鎖した要因を挙げた⁠[4]。

  • TanStackの@tanstack/*の侵害(上流)⁠[4]
  • minimum-release-ageの設定が黙って無効になっていたこと⁠[4]
  • gh CLIの認証情報を、どのローカルのプロセスからも取り出せたこと⁠[4]
  • Nx Consoleの公開の手順が、1人での公開を許していたこと⁠[4]

不正コードがトークンを取り出した経路は鑑識で確定しておらず、実行から74秒以内にGitHub APIに対してトークンを使ったことだけが分かっているとNxは説明した⁠[4]。

StepSecurityの5月18日の報告では、Nx Console(nrwl.angular-console)は220万件超の導入がある拡張機能だった⁠[8]。不正な版は、開いたワークスペースで498 KBの難読化された不正コードを、公式のnrwl/nxリポジトリ内の孤立したコミットから取得して実行した⁠[8]。

Nxによると、不正コードは拡張機能の起動時に動き、永続化の仕掛けをディスクに書き、Linuxでは/etc/sudoersの変更を試みた⁠[4]。Vault・npm・AWS・GitHub・1Passwordの認証情報と、SSH秘密鍵・.envファイル・GCPの認証情報・Dockerの設定を集めた⁠[4]。集めた情報は、HTTPSで攻撃者の基盤へ、GitHub APIで、DNSを使った秘匿の経路で持ち出された⁠[4]。

Sophosは、影響を受けた端末からPythonのバックドアcat.pyを回収したと報告した⁠[20]。このバックドアは、GitHubのSearch APIを1時間ごとに照会して命令を受け取る⁠[20]。

目次へ

時系列

時系列
日付主体内容資料
2026年5月11日攻撃者42の@tanstack/* npmパッケージに84の不正な版を公開した⁠[4]
2026年5月11日Nxの貢献者外部のリポジトリでpnpm installを実行し、不正な@tanstack/zod-adapter@1.166.15を解決した⁠[4]
2026年5月18日12時30分攻撃者不正なNx Console 18.95.0をVisual Studio Marketplaceにアップロードし、Open VSXでは12時33分に公開された(時刻はUTC)〔注2〕⁠[4]
2026年5月18日12時36分Nxのメンテナー公開者向けの通知メールで予定外のリリースに気付き、メールの約11分後にVisual Studio Marketplaceから取り下げた⁠[4]
2026年5月18日13時9分Open VSX18.95.0を取り下げた⁠[4]
2026年5月18日GitHub社員の端末の侵害を検知して封じ込めた〔注3〕⁠[1]
2026年5月18日〜19日GitHub影響の大きい認証情報を優先して、重要なシークレットを差し替えた⁠[1]
2026年5月20日GitHubブログで調査の状況を公表した⁠[1]
2026年5月21日Nx事後報告を公開した⁠[4]
2026年5月26日GitHubブログを更新して署名鍵の差し替えを告知し、GitHub Enterprise Server(GHES)3.20.3を公開した⁠[1、3]
2026年5月27日CVE ProgramCVE-2026-48027の記録を公開した⁠[5]
2026年5月27日CISACVE-2026-48027をKnown Exploited Vulnerabilities(KEV)カタログに加えた⁠[5]
2026年5月28日CISANx ConsoleとGitHubのリポジトリに影響するサプライチェーン侵害のアラートを公開した⁠[19]
2026年5月29日カナダ・サイバーセキュリティセンターAlert AL26-013を出した⁠[6]

目次へ

影響範囲

GitHubは5月20日のブログで、利用者自身のEnterprise・Organization・リポジトリなど、GitHub内部リポジトリの外に保存された利用者の情報への影響の証拠は無いと説明した⁠[1]。GitHubの内部リポジトリの一部には、サポートのやり取りの抜粋など利用者からの情報が含まれる⁠[1、2]。影響が見つかれば、確立したインシデント対応と通知の経路で利用者に知らせるとした⁠[1]。

カナダ・サイバーセキュリティセンター(Cyber Centre)のAL26-013では、攻撃者は独自のソースコードと内部の設定データを含む約3,800のGitHub内部リポジトリの持ち出しに成功した⁠[6]。

Nxは、影響を受ける版は18.95.0だけで、修正版は18.100.0だと説明した⁠[4]。VSCodeとそのフォーク(Cursorなど)が攻撃の対象になり、Nx CLI(npmのnxパッケージ)、公式の@nx/*プラグイン、Nx Cloudは影響を受けていない⁠[4]。

表1:Nxが示した不正な版の導入数と起動数
指標値資料
Visual Studio Marketplaceの導入数(Microsoftのテレメトリ)28⁠[4]
Open VSXの36分間のダウンロード41(21の固有IP)⁠[4]
Nxの社内の拡張機能の起動数(導入数ではなく起動数)約6,000⁠[4]

表1の導入数と社内の起動数の差は、NxがMicrosoftと照合している⁠[4]。Nxのテレメトリは起動を数え、Microsoftは導入を数えるため、起動数が大きくなるのは想定どおりだとした⁠[4]。

Sophosの5月21日の追記では、同社のMDRチームが脅威ハンティングで、影響を受けた顧客を複数特定した⁠[20]。

表2:CVE-2026-48027の記録
項目値資料
題Compromised Nx Console version 18.95.0⁠[5]
CNAGitHub_M⁠[5]
CWECWE-506(Embedded Malicious Code)⁠[5]
CVSS v4.0の基本値9.3(CRITICAL)⁠[5]
影響を受ける版nrwlのnx-consoleの18.95.0⁠[5]

目次へ

対応と現状

GitHubは5月20日のブログで、ログの分析、シークレットの差し替えの検証、基盤での後続の活動の監視を続け、調査の結果に応じて追加の措置をとるとした⁠[1]。5月26日の更新でも、調査は続いていると説明した⁠[1]。

GHESの署名鍵の差し替え

GitHubによると、GHESの署名鍵は、手動で始める更新の手順でGitHubが提供元であることを検証するために、GHESのバイナリの署名に使う⁠[1]。GitHubが配布するバイナリはすべて有効で、GitHub Enterprise Cloudでは対応は不要とした⁠[1]。差し替えなければ、今後のGHESの更新は検証に失敗し、「The file provided is not a valid GitHub Enterprise Server package.」のエラーが出る⁠[1]。

GHES 3.20.3のリリースノートでは、GHESのリリースパッケージの署名鍵は失効し、今後のリリースパッケージは新しい鍵だけで署名される⁠[3]。

GitHubはGHESの管理者に、インスタンスのGPG公開鍵の差し替えを求めた⁠[1]。

  • GitHubが開発したスクリプトで差し替える⁠[1]
  • スクリプトはadminユーザーとsudoで2回実行し、HA・クラスター構成では全ノードで行う⁠[16]
  • GHESの更新は公式のGitHub.comの配布元のURLからだけ取得する⁠[1]
  • 今後数か月、GHESのセキュリティ更新がこれまでより高い頻度で出ることに備える⁠[1]

GitHub Docsの手順書では、鍵を差し替えなくてもインスタンスは通常どおり動く⁠[16]。3.16より前の版は新しいGPG鍵で再署名せず、3.13以前の版は3.14以上にするまでGPG公開鍵を差し替えられない⁠[16]。

Cyber Centreは5月27日のAV26-512で、GitHubが5月26日にGHESの脆弱性に対処するセキュリティ勧告を公開したと伝えた⁠[7]。

表3:AV26-512が挙げたGHESの系列と修正版
系列修正版資料
3.20.x3.20.3⁠[7]
3.19.x3.19.7⁠[7]
3.18.x3.18.10⁠[7]
3.17.x3.17.16⁠[7]
3.16.x3.16.19⁠[7]

Nxと当局の対応

Nxは、公開期間に18.95.0を入れた人は端末が侵害されたものとして扱い、認証情報を差し替えるべきだとした⁠[4]。公開期間に自動更新を有効にしてNx Consoleを入れていた人にも、どの数字が正しいかにかかわらず、端末が侵害された可能性があるものとして扱うよう求めた⁠[4]。不正を許した公開の手順の欠陥は修正し、同じ堅牢化を公開権限のある他のリポジトリにも広げたと説明した⁠[4]。

AL26-013でCyber Centreが推奨したのは、CI/CDのログの確認、不正な版の除去、5月11日〜20日に開発者の端末にあった認証情報の差し替え、IDEの拡張機能の自動更新の停止、GHESのGPG公開鍵の差し替えである⁠[6]。

目次へ

未公表の事項

  • 社員の端末からGitHub内部リポジトリに至った経路と、使われた認証情報
  • GitHub自身による、持ち出されたリポジトリの件数の集計
  • GitHubの内部リポジトリに含まれる利用者の情報の範囲と件数
  • 署名鍵が持ち出されたかどうか
  • 調査の完了後の詳しい報告(GitHubは、調査が終われば公表するとした⁠[1])

注

  • 〔注1〕Aikido Securityは5月20日のブログで、約3,700の内部リポジトリと書いた⁠[9]。
  • 〔注2〕CVE記録の説明は、不正な版の公開日を5月19日とした⁠[5]。Visual Studio Marketplaceで入手できた時間は約18分と書いた⁠[5]。
  • 〔注3〕Sophosは5月20日の報告で、GitHubが5月19日に侵害を検知したと書いた⁠[20]。GitHubのブログは5月18日(月)とした⁠[1]。

出典

当事者

関係組織

公的機関

調査・観測

報道機関

更新記録

  • 2026年5月21日:公開した。
  • 2026年5月22日:Sophosの報告の5月22日までの追記(出典20)を「経緯」と「影響範囲」に加え、Nxの事後報告の5月22日の更新(出典4)を出典の節に反映した。
  • 2026年5月26日:GitHubのブログの5月26日の更新(出典1)、GHES 3.20.3のリリースノート(出典3)、署名鍵の差し替えの手順書(出典16)を加え、リードの最後の文と「時系列」「対応と現状」を改めた。
  • 2026年5月27日:GitHubブログ日本語版の訳(出典2)、CVE-2026-48027の記録(出典5)、カナダ・サイバーセキュリティセンターのAV26-512(出典7)を加え、「時系列」「影響範囲」「対応と現状」と注を改めた。
  • 2026年5月28日:CISAのアラート(出典19)を「時系列」に加えた。
  • 2026年5月29日:カナダ・サイバーセキュリティセンターのAL26-013(出典6)を「時系列」「影響範囲」「対応と現状」に加えた。
  • 2026年8月4日:CVE-2026-48027の記録の8月4日の更新(出典5)で加わったCISAのKEVへの追加を「時系列」に加えた。
  • 2026年11月3日:GitHub Docsのリリースノートの11月3日の更新(出典3)を出典の節に反映した。

目次へ