GitHub、JavaScriptとTypeScript向けDependabot到達可能性分析をプレビュー公開
GitHubは2026年10月28日、Dependabotアラートの到達可能性分析をパブリックプレビューで公開した。JavaScriptとTypeScriptが対象で、未解決の各アラートに、リポジトリのコードから依存関係内の脆弱な関数への呼び出し経路があるかという判定を加える。GitHubはこの判定を、作業の順序を決めるための追加の文脈と位置づけ、重大度、EPSSスコア、本番環境の文脈、チーム自身の知識と併せて使うよう述べている。
GitHubは2026年10月28日、Dependabotアラートの到達可能性分析をパブリックプレビューで公開した。JavaScriptとTypeScriptが対象で、未解決の各アラートに、リポジトリのコードから依存関係内の脆弱な関数への呼び出し経路があるかという判定を加える。GitHubはこの判定を、作業の順序を決めるための追加の文脈と位置づけ、重大度、EPSSスコア、本番環境の文脈、チーム自身の知識と併せて使うよう述べている。判定がアラートを閉じたり却下したりすることはない。
仕組みは3つの部分からなる。Dependabotは管理されたGitHub Actionsのワークフローで分析を実行するので、インストールも保守も要らない。アドバイザリごとに、整理されたデータが影響を受けるパッケージ内の脆弱な関数を示す。そのうえでCodeQLが、リポジトリと依存関係にまたがる呼び出しグラフを作り、ユーザーのコードからそれらの関数への経路を探す。証拠はアラート上に表示され、たとえばリポジトリ内のファイルからパッケージを経て脆弱な関数に至る呼び出し経路が見える。
未解決の各アラートには、4つの判定のいずれかが付く。到達可能は、コードから脆弱な関数への呼び出し経路が少なくとも1つあることを指す。到達の可能性ありは、関数が呼ばれるかどうか分析で判断できなかったことを指し、GitHubはこれを到達可能として扱うよう述べる。到達不能は、分析が完了して経路が見つからなかったことを指し、優先度は低いが閉じられはしない。判定不能(Reachability unavailable)は、分析できなかったことを指し、通常どおり仕分ける。到達不能と到達の可能性ありの区別は重要で、完了した否定の結果は前者だけである。
プレビューには明確な制限がある。無料で、GitHub Advanced Securityのライセンスは要らず、使うActionsの分も課金されない。対象はデータレジデンシー版を含むGitHub Enterprise Cloudである。npm、Yarn、pnpmのロックファイルがあるJavaScriptとTypeScriptのリポジトリが対象で、GitHubホストのランナーでのみ動き、セルフホストランナーは使えない。一部のモノレポや、複数のディレクトリにマニフェストがあるリポジトリは未対応のことがある。分析が3時間を超えると、一部の結果が「判定不能」になることがある。対象範囲は、GitHub Advisory Databaseのうち、GitHubが審査済みでDependabotアラートの対象となるJavaScriptのアドバイザリすべてである。
この機能は既定でオフだ。管理者は、企業や組織のカスタムセキュリティ構成で多数のリポジトリに一括して有効にするか、単一のリポジトリでSettingsのAdvanced SecurityにあるDependabotの項目から有効にする。Dependabotアラートはあらかじめオンにしておく必要がある。最初のスキャンはすぐに始まり、数分から数時間かかる。その後は、リポジトリに未解決のDependabotアラートがある間、毎日再実行される。判定はアラート一覧に表示され、絞り込みと並べ替えができ、DependabotアラートのREST APIも同じ情報を他のツールやエージェントに渡す。
到達可能性は優先順位付けの補助であり、安全の証明ではない。静的分析で呼び出し経路が見つかっても、コードが関数に届くことが分かるだけで、攻撃者が悪用できるとは限らない。逆もそうで、ページには精度の数字がなく、到達不能は優先度が低いことを示す信号であって保証ではない。プレビューは多くのプランと2つ以外の言語を対象外としているので、まだ判定が出ないチームも多い。Enterprise CloudでJavaScriptのコードを持つチームには、長いアラート一覧を、各項目に証拠を付けて並べ替える手段になる。
Sources
FAQ
到達可能性分析は警告にどの4つの判定を付けますか?
到達可能はコードから脆弱な関数への呼び出し経路が1つ以上あること、到達の可能性ありは判断できず到達可能として扱うこと、到達不能は経路が見つからず優先度が低いこと、判定不能は分析できなかったことを指す。判定がアラートを閉じたり却下したりすることはない。
プレビュー中にはどんな制限がありますか?
無料でAdvanced Securityのライセンスは不要、対象はGitHub Enterprise Cloudのみである。npm、Yarn、pnpmのロックファイルがあるJavaScriptとTypeScriptに限り、GitHubホストのランナーで動く。一部のモノレポは未対応の可能性があり、3時間を超えると判定不能になることがある。
どう有効にし、どのくらいの頻度でスキャンしますか?
既定ではオフである。カスタムセキュリティ構成で多数のリポジトリに一括で、または単一リポジトリのAdvanced SecurityのDependabot項目で有効にし、Dependabotアラートが先にオンである必要がある。最初のスキャンはすぐ始まり数分から数時間かかり、その後は未解決アラートがある間、毎日再実行される。