NOT OSV-SCANNER名前の似た別物

OSS Scanner はまだ知られていない脆弱性をモデルが探す

OSV-Scanner(Google)

自分で入れて動かす CLI

  • 依存パッケージの一覧を読む
  • OSV データベースの既知の脆弱性と照合
  • 誰でも、どのプロジェクトにも使える

OSS Scanner(Anthropic)

登録制の無料サービス

  • プロジェクト自身のコードを解析
  • 見つけた脆弱性を再現手順つきでメール
  • 対象は重要な OSS のコアメンテナー
出典: anthropics/oss-scanner README、google/osv-scanner README、Anthropic の発表(2026-10-08)。2026-10-20 確認

30秒でわかる(2026年10月20日時点)

・何か:OSS Scanner は、Anthropic の Frontier Red Team が2026年10月8日に公開した、オープンソース向けの無料・登録制の脆弱性スキャン。Claude Mythos を含む同社の最も強いモデルが、登録したプロジェクトを定期的に解析する
・誰が使えるか:重要なプロジェクトのコアメンテナー。GitHub の anthropics/oss-scanner に projects/<名前>/ を足す PR を出して登録する
・何が届くか:再現手順・説明・あれば修正パッチつきのレポートが、メールで届く。人のレビューは挟まないので、90日の開示期限も公開も無い
・どこまで信じるか:初期版の critical・high 97件のうち、85件(88%)が協調的な脆弱性開示の基準を満たした。一方で、深刻度が高めに付くという声をメンテナーから受けていると Anthropic 自身が書いている

まずやること

・OSS のメンテナー:自分のプロジェクトが「インフラや利用者の安全に重大な影響を持つ」かを考え、登録するなら先に threat_model.md(深刻度の付け方)を書く。手順は登録のしかた
・OSS を使う開発者:利用者に届くものは無い。依存先の既知の脆弱性は、これまでどおり OSV-Scanner や npm audit などで確かめる

OSS の依存先を経由する攻撃と、それを防ぐ道具の全体像は、サプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説にまとめています。本記事は OSS Scanner に絞り、何か、どう登録するか、届いたレポートをどう読むかを、リポジトリの実物と公式の発表から確かめます。

OSS Scanner とは:OSV-Scanner・OSS-Fuzz・Claude Security との違い

「OSS Scanner」で検索すると、上位には Google の OSV-Scanner が並びます。名前は1文字違いですが、探すものが違います。AI 脆弱性診断の道具として並べて語られる Anthropic の Claude Security・/security-review や、Google の OSS-Fuzz とも比べます。

名前 提供 何を探すか どこで動くか 使える人
OSS Scanner Anthropic プロジェクト自身のコードにある、まだ知られていない脆弱性 Anthropic の VM。結果はメール 登録したプロジェクトのコアメンテナー(無料)
OSV-Scanner Google 依存パッケージの既知の脆弱性(OSV データベースと照合) 自分の手元や CI 誰でも(OSS の CLI)
OSS-Fuzz Google ファジングで見つかるメモリ破壊などのバグ Google の基盤で継続実行 審査に通った OSS
Claude Security Anthropic 自分のリポジトリの脆弱性(スキャンとパッチ案) 管理型サービス(Enterprise プラン)と Claude Code のプラグイン 契約・プランの範囲の利用者
/security-review Anthropic 今のブランチの変更を1回見る Claude Code のセッション Claude Code の利用者

OSS Scanner に近いのは OSS-Fuzz です。Anthropic の発表は OSS-Fuzz に着想を得たと書き、受け入れの基準も OSS-Fuzz に似せています。登録の形も同じで、OSS-Fuzz も projects/<名前>/project.yaml を足す PR で申し込み、primary_contact に連絡先を書きます。

違いは開示の扱いです。OSS-Fuzz は作者に知らせてから90日後か修正の公開後の早い方で、報告を公開します。OSS Scanner はレポートを公開しません。

Anthropic は企業向けに Claude Security を出していますが、OSS Scanner はそれとは別に、OSS に無料で監査を出す枠だと発表で位置づけています。登録の審査を待たずに自分のリポジトリで Claude 脆弱性診断を回すなら、入口は Claude Security か /security-review です。ブランチ単位で見る /security-review の GitHub Action 版は、Claude Code Security Reviewとは|PRを自動で守るGitHub Actionを実測で試しています。

なぜ人のレビューを外したのか

発表によると、Anthropic はこの半年で最新モデルを使い、29,000件を超える脆弱性の候補を見つけました。人の手で確かめられたのは約6,000件にとどまります。最初のレポートを受け取ったメンテナーから「未検証でもいいから全部送ってほしい」と頼まれることが増え、そうして送ったレポートは5,000件近くになったといいます。

OSS Scanner は、この「未検証でも早く欲しい」側のための近道です。人が確かめたレポートを送る従来の協調的な脆弱性開示(CVD)も続け、特にトリアージに手が回らないプロジェクトにはそちらで送るとしています。OSS Scanner のもとになった取り組みは、Project Glasswing初回成果報告とClaude Mythos Preview発表の記事で追っています。

OSS Scanner の仕組み:ネットありでビルドし、ネットなしで解析する

HOW A SCAN RUNSスキャンの流れ

ビルドはネットありの VM、解析はインターネットなし

  1. PR で登録

    projects/<名前>/ を足す

  2. オンラインでビルド

    隔離した VM で Dockerfile を実行

  3. オフラインで解析

    インターネットの無いネットワークへ移す

  4. メールで届く

    再現手順と、あれば修正パッチ

出典: anthropics/oss-scanner README(2026-10-20 時点)。レポートはモデルが生成し、人はレビューしない

登録の PR がマージされると、次の順で動きます(README)。

段 何が起きるか メンテナー側で効くこと
1. 取り込み・ビルド 隔離した VM で、ネットワークありで Dockerfile を実行する。失敗すると primary_contact にエラーがメールされる 依存・テスト用のデータはここで取り切る
2. 解析 VM をインターネットの無いネットワークへ移してスキャンする 解析中に何かを取りに行くテストは動かない
3. 報告 見つけたものを primary_contact と CC にメールする 届いた先で仕分ける

リポジトリの tools/check_build.py には、スキャナーがプロジェクトに割り当てる資源が書かれています。ビルドの制限時間は clone から完成まで45分、ビルド用のマシンは16 CPU・メモリ64GB・ディスク120GB、解析を受け持つエージェントのマシンは2 CPU・メモリ8GBです。ビルドしたイメージの上に、スキャナーが Claude Code・コンパイラ・デバッガの層を足します。

レポートの中身は、発表によると、単体で動く再現コード、脆弱性の説明(できる場合はバグが入った時点の二分探索を含む)、修正パッチの候補(ある場合)です。

公開されていないこともあります。スキャンの頻度と、1プロジェクトにかける予算です。リポジトリの tools/validate.py は、cadence・budget などの項目を「運営側が決めるもの」として project.yaml に書くと弾きます。スキャンの向きを変えたいときは、threat_model.md で伝える設計です。

OSS Scanner の登録のしかた:project.yaml・Dockerfile・threat_model.md

3つのファイル

ファイル 必須か 置き場所 書くこと
project.yaml 必須 このリポジトリの projects/<名前>/ repo(https の git URL を1つ、#ブランチ で固定も可)と primary_contact(1アドレス)が必須。任意で auto_ccs・homepage・disabled・pgp
Dockerfile 必須 自分のリポジトリ(dockerfile: でパスを指す。推奨)か projects/<名前>/ のどちらか一方 依存を入れてビルドする。テンプレートは COPY . /src で、チェックアウトを /src に置く
threat_model.md 任意(強く推奨) Dockerfile と同じく、どちらか一方 深刻度の付け方、信頼しない入力の入口、重要な部品と対象外の部品、試し方

Dockerfile を自分のリポジトリに置けば、ビルドを変えるたびにこのリポジトリへ PR を出さずに済みます。

project.yaml のメールアドレスは公開されます。 セキュリティ用の別名を使ってください。PGP の公開鍵を pgp: に入れると、レポートは暗号化されて primary_contact だけに届きます。この場合 auto_ccs とは併用できません。

手元で規則を確かめる

PR の前に tools/validate.py を回すよう README が勧めています。テンプレートをそのまま projects/example/ に置き、2026年10月20日に実行しました。必要なのは git と Python 3、PyYAML です。

git clone https://github.com/anthropics/oss-scanner.git
cd oss-scanner
python3 -m venv ../oss-scanner-venv && . ../oss-scanner-venv/bin/activate
pip install pyyaml
mkdir projects/example
cp templates/project.yaml projects/example/
python3 tools/validate.py | grep -E '^ok|example'
# ok: 128 project(s)
#   example                  https://github.com/example/project#main  -> [email protected]  (Dockerfile: in the repository at .oss-scanner/Dockerfile)

validate.py は引数を取らず、projects/ の全件を見ます。128件は、登録済みの127件に example を足した数です。

テンプレートの dockerfile: 行を残したまま Dockerfile も横に置くと、置き場所が二重になって落ちます。横に置くならこの行を消す、とテンプレートのコメントにあります。

cp templates/Dockerfile projects/example/
python3 tools/validate.py; echo "exit=$?"
# example: Dockerfile is given both beside project.yaml and as dockerfile: in your repository — one place only
# exit=1

ほかに試して落ちたのは、primary_contact を消したとき(missing primary_contact)、pgp: と auto_ccs を両方書いたとき、Dockerfile がどこにも無いとき(dockerfile: を消して横にも置かない)です。どれも終了コード1でした。

validate.py が見るのは書式と置き場所だけです。ok と出ても、dockerfile: のパスに実物があるか、ビルドが通るかまでは見ていないので、スキャナーでビルドできるとは限りません。それを確かめるのが tools/check <名前> で、スキャナーと同じ手順でビルドし、ネットワークを切ったシェルを開きます。規則の確認・clone・Dockerfile の配置までは動くことを確かめましたが、ビルドの完了は未検証です。README の注意どおり、tools/check は Dockerfile をネットワークありで実行し、イメージに Claude Code を入れます。信頼できるプロジェクトだけで使ってください。

PR で求められること

PR のテンプレートには、確認のチェック欄が並びます。コアメンテナーであること、規約への同意、受け入れ基準を満たすと考えていること、validate.py と tools/check を通したことなどです。規約への同意の欄は、チェックが入るまで GitHub Actions が失敗させます。初回は CLA への署名もコメントで求められます。

PR には、★数・フォーク数・ライセンス・ダウンロード数の順位・SECURITY.md の連絡先などを集めたコメントが自動で付きます。ワークフローの説明では、これはレビューの材料で、可否を決めるものではありません。

止めるときは disabled: true、やめるときは projects/<名前>/ を消す PR を出します。このリポジトリは、登録・変更・停止・取り下げの PR だけを受け付けます。

届いた OSS Scanner のレポートをどこまで信じるか

EARLY VALIDATION初期版の検証

97件中85件(88%)が開示の基準を満たした

開示の基準を満たした協調的な脆弱性開示(CVD)の基準

85

本物だが重複既知の問題か、同じスキャンの別の指摘

11

無効(誤検知)

1
出典: Anthropic「Launching an opt-in vulnerability-finding service for open-source software」(2026-10-08)。48プロジェクトの critical・high 97件を、CVD の指摘を確かめているペネトレーションテスターが見た結果

数字は Anthropic の発表にある検証です。初期版のスキャナーが48プロジェクトで出した critical・high の97件を、同社の CVD の指摘を確かめているペネトレーションテスターが見ました。85件(88%)が CVD に回せる水準で、残り12件のうち11件は本物でも重複、無効は1件でした。

この数字を読むときの前提は3つあります。

・対象は critical・high だけ。medium 以下の精度は示されていない
・初期版での検証。今のスキャナーと同じとは限らない
・88% は「開示に回せる」の割合で、深刻度まで合っていた割合ではない。Anthropic は、深刻度が高めに付く、プロジェクトの脅威モデルを取り違える、という声をメンテナーから受けていると書いている

発表には、試験運用に参加したメンテナーの声もあります。wolfSSL は受け取った74件のうち2件を除いて有効で、5件が CVE になったとしています。curl の Daniel Stenberg 氏は、ここ数年で最悪級の curl の脆弱性を含む複数の問題が見つかったと述べています。

届いたあとに決めること

人のレビューが無く、90日の期限も無いので、仕分けと開示の段取りはメンテナーが持ちます。

確かめること 見るところ
本当に起きるか 付いてきた再現コードを、自分の環境で動かす
深刻度は妥当か threat_model.md に書いた自分の基準と照らす。前提の取り違えが無いか
既知の問題と重複していないか 既存の Issue・アドバイザリ・同じ回の別のレポート
パッチをそのまま使えるか 候補のパッチをレビューし、テストを足す。そのまま当てない
公表をどうするか CVE の採番やアドバイザリの公開は、プロジェクトの手順で決める

深刻度の基準を先に書いておくほど、仕分けが楽になります。登録済みのプロジェクトが置いた threat_model.md には、たとえば OpenSSH の「バッファオーバーフロー・use-after-free・二重解放は最低でも high、sshd の認証回避は critical、DoS はすべて medium」のような書き方があります。

発表は、脆弱性の修正などに使えるものとして、OSS 向けに Claude Max 20x を無料で提供する Claude for OSS も案内しています。

登録済みの127件と、OSS Scanner が向いているプロジェクト

リポジトリの projects/ を2026年10月20日に数えた結果です。リポジトリの最初のコミットは発表と同じ10月8日です。

項目 件数
登録済みのプロジェクト 127件(追加のコミット日 UTC で、初日の10月8日に8件、9日に50件)
リポジトリの置き場所 github.com 121件、gitlab.com 2件、ほか4件
Dockerfile をこのリポジトリに置く/自分のリポジトリを指す 79件/48件
threat_model.md をこのリポジトリに置く/自分のリポジトリを指す/どちらも書いていない(既定の .oss-scanner/threat_model.md を見に行く) 80件/44件/3件
pgp: で暗号化を選んだ 7件
auto_ccs で CC を足した 23件

このリポジトリに置かれた threat_model.md 80件は、13〜284行で、中央値は80行です。

プロジェクト 領域 追加のコミット日(UTC)
openssl 暗号ライブラリ 2026-10-09
cryptsetup ディスク暗号化(gitlab.com) 2026-10-09
cpython 言語処理系 2026-10-11
webpack JavaScript のバンドラー 2026-10-11
jupyterlab ノートブック環境 2026-10-11
coraza WAF(Dockerfile は自分のリポジトリ) 2026-10-15
argo-cd Kubernetes の GitOps 2026-10-16
openssh SSH 2026-10-16
harfbuzz フォントのシェーピング 2026-10-19

向いているのは、次の条件がそろうプロジェクトです。

・ネットワーク越しの入力や信頼しないファイルを扱い、多くの利用者や他のプロジェクトが依存している
・Docker でビルドとテストが45分以内に終わり、解析中にネットワークが要らない
・未検証のレポートを受け取り、自分で再現と仕分けをする人手がある

逆に、トリアージの人手が無いプロジェクトは、人が確かめたレポートだけを受け取れる従来の CVD の方が合うと Anthropic 自身が書いています。コアメンテナーでない人は、依存先のプロジェクトを代わりに登録できません。

OSS を使う側にとっては、依存先が projects/ に載っていても、届くものも見えるものもありません。変わるのは、メンテナーに修正の材料が早く届くことです。手元で見るべきものは今までと同じで、依存先の既知の脆弱性をnpm audit の結果はどれから直す?依存関係の脆弱性を到達性・EPSS・KEVで仕分ける実践手順のように仕分けて直します。

参照ソース

・Anthropic: Launching an opt-in vulnerability-finding service for open-source software(2026-10-08)
・OSS Scanner(Anthropic Frontier Red Team)
・OSS Scanner terms
・anthropics/oss-scanner(README・templates・tools・projects。2026-10-20 確認、Apache-2.0)
・google/osv-scanner README
・OSS-Fuzz: Accepting new projects
・OSS-Fuzz: Bug disclosure guidelines
・Claude Code Docs: Scan your codebase for vulnerabilities(Claude Security)