GitHub、npmの「trusted publishing」に48時間の期限を導入 1500件超のパッケージ乗っ取り脆弱性に対処
要点
-
GitHubは、npmの「trusted publishing」において、作成から48時間以内に初回の公開が行われない未検証の設定を自動失効させる対策を実施した。
-
セキュリティ企業Bloom Securityの調査により、認証情報の窃取なしに1,500件以上のパッケージが第三者に乗っ取られる脆弱性「SlugFest」が判明していた。
-
パッケージの初回公開前はリポジトリ固有の数値IDではなく名前の文字列(スラッグ)のみで照合されていたため、放棄された名前の再取得による不正公開が可能だった。
-
初回公開が成功すると設定は不変のリポジトリIDに紐付けられて失効対象外となるほか、
issue_commentイベント経由のトークン発行も拒否されるようになった。 -
米マイクロソフト傘下のGitHubは、JavaScript向けパッケージ管理システム「npm」の認証連携機能「trusted publishing(信頼済み発行)」の仕様を改定した。作成後48時間(2日間)以内に初回の公開が完了しない設定を自動失効させる措置を導入している。セキュリティ企業Bloom Securityの報告により、1,500件以上のパッケージが第三者に不正公開される恐れのある欠陥が判明したことを受けた対応だ。
未検証設定を突く攻撃手法「SlugFest」の仕組み
trusted publishingは、GitHub ActionsなどのCI/CD環境からOpenID Connect(OIDC:安全な認証連携プロトコル)のトークンを用い、秘密鍵なしでnpmパッケージを公開できる仕組みとして2025年7月に導入された。パッケージのビルド元や公開者を証明する来歴証明書(provenance attestation)の自動生成にも対応している。
だが、この仕組みにはリポジトリの識別方法に穴が存在した。GitHub内部では各リポジトリに改名後も変わらない固有の数値IDが割り振られているが、npm側は初回公開が完了するまでこの数値を無視し、「所有者/リポジトリ名」形式のアドレス文字列である「スラッグ(slug)」のみで照合を行っていた。
そのため、信頼関係がリポジトリ固有の不変IDではなく変更可能な名前に結びつき、放棄されたスラッグを取得した第三者が信頼関係を引き継げる状態になっていた。
1500件超が無防備に 想定された攻撃手順とリスク
Bloom Securityの研究者Golan Myers氏がこの欠陥を発見し、2026年6月6日にGitHubへ報告した。同氏はこの問題を「家の所有者ではなくドアの住所だけを確認する鍵のようなもので、住人が引っ越せば新しい入居者に鍵が渡ってしまう」と例えている。
「SlugFest」と命名されたこの攻撃は、開発者がnpm側でtrusted publishingを設定したものの初回公開を行っておらず、その後にリポジトリの改名や削除でスラッグが空いた場合に成立する。
攻撃者は解放されたスラッグでリポジトリを作成し、GitHub Actionsから公開ワークフローを実行してOIDCトークンを発行させる。npm側はスラッグ名の一致だけで公開権限を発行するため、攻撃者は正規パッケージの公開トークンを入手できてしまう。
これにより、既存の評価やダウンロード数を引き継いだまま悪意ある新バージョンが公開され、大規模なサプライチェーン攻撃につながる危険があった。調査では1,500件超のパッケージが無防備だったと判明している。さらにMyers氏は、開発端末のAIエージェントが自律的にパッケージを取得する環境下で、単一のパッケージ侵害から被害が連鎖するリスクも警告している。
GitHubが導入した48時間ルールと制限強化
報告を受けたGitHubは変更履歴とドキュメントを更新し、未検証のtrusted publishing設定に厳格な有効期限を設けた。
新たな仕様では、新規作成された設定は48時間以内に初回の公開を正常に完了させる必要がある。初回公開が完了すると設定は「検証済み」となって期限切れの対象から外れ、リポジトリ固有の不変IDに正式に紐付けられる。
リポジトリやプロジェクトの識別情報を変更する場合は、再び48時間の検証期間を持つ信頼関係を設定し直す必要があり、通常の設定編集では期限はリセットされない。
また、GitHub Actions側の制御も強化された。従来からのpull_request_targetイベントの制限に加え、Issueへのコメントを契機とするissue_commentイベントから生成されたトークンもnpm側で拒否される仕様となった。これにより、意図しないイベント駆動によるトークンの悪用防止も図られている。