本文へ移動istheinternetok

あなたのリポジトリは無事?

GitHub リポジトリの依存関係に脆弱性がないかチェック

公開されている GitHub リポジトリを貼り付けてください。最新コミットのロックファイルをすべて読み取り、固定された各バージョンを既知のすべての欠陥と照合して、まず更新すべきものをお伝えします。無料、アカウント不要、インストール不要。

試す:vercel/next.jsJavaScriptpallets/flaskPythonastral-sh/ruffRustkubernetes/kubernetesGorails/railsRubybitwarden/server.NETphoenixframework/phoenixElixirimmich-app/immichDart, TypeScript

読み取るもの

14のエコシステムで、30種類のロックファイル形式と7種類のマニフェスト形式に対応。すべてのフォルダが対象で、モノレポやワークスペースも含みます。ロックファイルのないプロジェクトでは、マニフェストが固定している正確なバージョンを読み取ります。CocoaPods や Conan のように確認できないロックファイルは、黙って飛ばさず、リポジトリのページに名前を出します。

JavaScript, TypeScriptnpm
package-lock.jsonnpm-shrinkwrap.jsonpnpm-lock.yamlyarn.lockbun.lockdeno.lockpackage.json
PythonPyPI
uv.lockpoetry.lockPipfile.lockpdm.lockpylock.tomlrequirements.txtrequirements.lockpixi.lockconda-lock.ymlpyproject.toml
Rustcrates.io
Cargo.lockCargo.toml
GoGo modules
go.mod
Java, KotlinMaven
gradle.lockfilemaven_install.jsonpom.xmllibs.versions.toml
.NETNuGet
packages.lock.jsonpackages.configpaket.lock.csproj.fsproj.vbprojDirectory.Packages.props
RubyRubyGems
Gemfile.lockgems.locked
PHPPackagist
composer.lock
Dart, FlutterPub
pubspec.lock
SwiftSwiftPM
Package.resolved
Elixir, ErlangHex
mix.lockrebar.lock
HaskellHackage
cabal.project.freeze
RCRAN
renv.lock
JuliaJulia
Manifest.toml

点線の枠:マニフェスト。ロックファイルがカバーしていない場所でのみ読み取ります。

どれだけ読み取れるか

97〜100%

GitHub 自身の依存関係グラフが挙げる固定バージョンのうち、npm、PyPI、Cargo、Go、Pub、Swift で読み取れた割合。大規模な77リポジトリで計測しました。

今のところ Packagist(95%)、RubyGems(92%)、NuGet(84%)、Maven(62%)ではこれより低めです。

仕組み

  1. 最新コミットのロックファイルを読み取る

    すべてのフォルダのロックファイルを、GitHub 上で正確なコミットの時点で読み取ります。各パッケージの固定バージョンと、開発ツールだけが使っているかどうか。ソースコードそのものは一切読みません。

  2. 各バージョンを既知のすべての欠陥と照合する

    各バージョンを、公開のセキュリティアドバイザリーのデータベース(GitHub、PyPI、RustSec、Go など)をまとめた OSV と、攻撃者がすでに悪用している欠陥を集めた CISA のリストで調べます。

  3. まず更新すべきものを伝える

    ユーザーに関わるものを先に、最も深刻なものを一番上に。更新すべきパッケージ(多くの場合、欠陥を持ち込む直接の依存関係)と、それを直すバージョンを示します。テスト、サンプル、ドキュメント、開発ツールは別に並べ、答えには含めません。

  4. 欠陥に「できること」を伝え、「起きている」とは言わない

    コードがパッケージの脆弱な部分を呼び出しているかどうかは確認しません。ページ上の欠陥は更新すべきバージョンであって、プロジェクトが攻撃可能だという証拠ではありません。

  5. 常に最新

    新しいコミットは次の訪問時に読み取ります。新しいアドバイザリーは、OSV が公開してから数分で、影響するすべてのリポジトリに届きます。

README にバッジを

各リポジトリのページで、その答えを表示し、答えとともに変わるバッジがもらえます。owner/repo をあなたのリポジトリに置き換えてください:

[![owner/repo は無事?](https://istheinternetok.com/r/owner/repo/badge.svg)](https://istheinternetok.com/r/owner/repo/)

エージェントとスクリプト向け

同じ答えを JSON で、キーなしで:/v1/repos/owner/repo。MCP ツール check_repo としても:https://istheinternetok.com/mcp。エージェントが知るべきことはすべて /skill.md にあります。

curl -s https://istheinternetok.com/v1/repos/vercel/next.js

よくある質問

非公開のリポジトリもチェックできますか?

いいえ。誰でも見られる公開 GitHub リポジトリだけを読み取ります。非公開のものを求めることはありません。

コードは保存されますか?

いいえ。ソースコードは一切読まず、ロックファイルとマニフェストだけを読みます。新しい欠陥が出たときに再チェックするため、それらが固定するパッケージとバージョンの一覧と答えを保存します。

料金はかかりますか?

かかりません。アカウントもキーも不要で、ページ、バッジ、API、MCP ツールはすべて無料です。

npm audit や Dependabot とは何が違いますか?

同じ種類の照合をリンクひとつで、何もインストールせずに、npm だけでなくすべてのエコシステムでまとめて行います。Dependabot のアラートはリポジトリの管理者にしか見えませんが、このページは誰でも読めて共有できます。テストや開発ツールだけが使うものも分けて示します。

ページに欠陥があるということは、プロジェクトがハッキングされたのですか?

いいえ。プロジェクトが固定しているバージョンに既知の欠陥があること、そしてその欠陥で何ができてしまうかを示しています。コードが脆弱な部分に届いているかは確認しません。まず更新し、必要ならさらに詳しく見てください。