Pythonプロジェクトの依存関係を脆弱性データベースで即チェック

Simon Willison氏が、Pythonプロジェクトの依存パッケージに含まれる既知の脆弱性を一括検索できるWebツール「Python Vulnerability Lookup」を公開した。

使い方はシンプル——設定不要で即利用可能

使い方は非常にシンプルだ。プロジェクトの pyproject.toml または requirements.txt の内容をテキストエリアに貼り付けるか、依存関係ファイルを含むGitHubリポジトリ名を入力するだけでよい。ツールはGoogleが運営するオープンソース脆弱性データベース OSV.dev のJSON APIに問い合わせを行い、各パッケージの既知脆弱性を一覧表示する。

表示される情報には以下が含まれる:

  • 深刻度レベル(CVSSスコアベース)
  • 影響を受けるバージョン範囲
  • 詳細な開示レポートへのリンク

OSV.devのオープンCORS APIを活用

今回のツール開発のきっかけは、OSV.devがCORSを許可したオープンなJSON APIを提供していることをWillison氏が発見したことだ。CORSが許可されているため、バックエンドサーバーを介さずブラウザから直接APIを叩けるシングルページのHTMLツールとして実装できた。

OSV.dev(Open Source Vulnerabilities)はGoogleが主導するプロジェクトで、Python(PyPI)をはじめ、npm、Go、Rust、Javaなど多数のエコシステムの脆弱性情報を一元管理している。NVDやGitHub Advisory Databaseとも連携しており、日本の開発現場でも活用が広がっている。

ツール自体もAIで開発——「バイブコーディング」の実践例として

Willison氏はこのツール自体を Claude Code を使って構築したことも明かしている。AIアシスタントと対話しながらコードを書く「バイブコーディング(Vibe Coding)」のひとつの実践例として紹介されており、軽量なHTMLツールをAIで素早く実装するアプローチの有効性を示している。

サプライチェーン攻撃対策として活用を

Pythonプロジェクトの依存関係を狙ったサプライチェーン攻撃は近年増加傾向にある。pip audit や GitHub Dependabotといった既存ツールと並んで、本ツールをCI/CDの事前チェックや定期的なセキュリティレビューに組み込むことで、脆弱なパッケージの早期発見に役立てられるだろう。

ツールはブラウザ上で動作し、インストール不要・無料で利用可能。


元記事: Python Vulnerability Lookup