Next free-source hunt
We check for new free data every weekday.
Datasets / Cyber Threat
github.com/

GitHub Advisory Database

Freeauth: noneCC-BY-4.0#cyber-threat#vulnerabilities#software-supply-chain#historical-data✓ verified Nov 4, 2026

GitHub Advisory Database

GitHub publishes its security-advisory database as individual OSV-format JSON files in a public repository. It combines GitHub-originated advisories, CVEs and imports from ecosystem databases, with affected packages, vulnerable ranges, references, aliases, severity and GitHub review metadata. The repository is free and open source, can be cloned without an account, and accepts curated community corrections.

Required Attribution:

Credit GitHub Advisory Database, link CC BY 4.0 and indicate changes.

Coverage

Security advisories for supported package ecosystems including Composer, Erlang, GitHub Actions, Go, Maven, npm, NuGet, pip, Pub, RubyGems, Rust and Swift. Granularity: one OSV JSON file per advisory, split into GitHub-reviewed and unreviewed directories. Free history depth: git history. Delay and update frequency: Not stated. GitHub warns that repository organization and database-specific fields can change without notice.

Verdict

This is package-level vulnerability data for dependency and software-supply-chain agents that need affected-version ranges and GitHub's curation state. It differs from OSV.dev: this is GitHub's source repository and includes GitHub-specific fields, while OSV.dev is an API and aggregator that imports GHSA data alongside other databases. Keep the advisory ID, aliases, ecosystem and reviewed flag, and do not rely on unspecified database_specific fields. Reuse requires CC BY 4.0 attribution.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load a recently changed GitHub advisory into pandas and Parquet. Checked against the provider's documentation on Nov 4, 2026.

Raw skill file (/skills/github-advisory-database.md)Also in our MCP server: call get_ingestion_skill with {"slug": "github-advisory-database"}.

Access

  • No account is needed to clone the public repository.
  • This small check uses GitHub's unauthenticated API; use git for bulk ingestion.

Request

bash
git clone --filter=blob:none https://github.com/github/advisory-database.git

Format

One OSV JSON file per advisory with ID, dates, aliases, affected packages and ranges, references, severity and review metadata.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""One recently changed GitHub advisory -> pandas -> Parquet. No key."""
import requests
import pandas as pd

API = "https://api.github.com/repos/github/advisory-database"
headers = {"Accept": "application/vnd.github+json", "User-Agent": "signal-lab-catalog-check"}
commits = requests.get(f"{API}/commits", params={"path": "advisories", "per_page": 10}, headers=headers, timeout=60)
commits.raise_for_status()
advisory = None
for commit in commits.json():
    detail = requests.get(f"{API}/commits/{commit['sha']}", headers=headers, timeout=60)
    detail.raise_for_status()
    files = [f for f in detail.json().get("files", []) if f["filename"].startswith("advisories/") and f["filename"].endswith(".json") and f.get("raw_url")]
    if files:
        data = requests.get(files[0]["raw_url"], headers=headers, timeout=60)
        data.raise_for_status()
        advisory = data.json()
        break
if advisory is None:
    raise RuntimeError("No changed advisory found")
row = {"id": advisory["id"], "published": advisory.get("published"), "modified": advisory.get("modified"), "summary": advisory.get("summary"), "aliases": ";".join(advisory.get("aliases", []))}
pd.DataFrame([row]).to_parquet("github_advisory_sample.parquet", index=False)
ecosystems = sorted({a.get("package", {}).get("ecosystem", "") for a in advisory.get("affected", [])})
print(advisory["id"], "modified", advisory.get("modified"), "ecosystems", ",".join(ecosystems))

Run by us on 2026-11-04 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: GHSA-7g64-f2hm-vjxp modified 2026-11-04T17:49:18Z ecosystems Maven

Limits

  • Repository download limits: Not stated.
  • The unauthenticated REST API has a separate IP-based limit.

Quirks

  • Reviewed and unreviewed advisories use separate directories.
  • database_specific fields can change without notice.
  • Later commits can correct records.

Terms and attribution

  • The database is CC BY 4.0.
  • Give attribution, link the licence and indicate changes.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer