explaingit

google/osv-scanner

10,168GoAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TLDR

A free, open source security scanner from Google that checks your project's dependencies against a public vulnerability database, supporting many languages, Linux packages, and container images.

Mindmap

mindmap
  root((osv-scanner))
    What it does
      Scans dependencies
      Finds vulnerabilities
      License checking
    Data Sources
      OSV.dev database
      GitHub Advisories
    Features
      Guided remediation
      Offline mode
      Call analysis
      Container scanning
    Audience
      DevOps engineers
      Security teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Scan your project's dependency files to find packages with known security vulnerabilities before they reach production.

USE CASE 2

Check a Docker container image for vulnerable packages across every layer.

USE CASE 3

Get guided upgrade suggestions that fix the most vulnerabilities with the fewest package version changes.

USE CASE 4

Run license scanning to confirm your dependencies comply with your project's licensing rules.

Tech stack

Go

Getting it running

Difficulty · easy Time to first run · 5min

Download the prebuilt binary and run a single command pointing at your project directory.

Open source from Google, free to use for any purpose including commercial projects.

In plain English

OSV-Scanner is a free, open source tool from Google that checks your software project for known security vulnerabilities in its dependencies. When you build a software project, you rely on dozens or hundreds of external packages written by others. Any of those packages might have a known security flaw. OSV-Scanner scans your project's dependency files and cross-references them against a public database of vulnerabilities called OSV.dev. The tool supports a wide range of programming languages including Python, JavaScript, Go, Java, Ruby, Rust, PHP, and others. It reads common dependency files like package.json, go.mod, and pom.xml automatically when you point it at a directory. Beyond code, it can also scan Linux operating system packages and container images, checking each layer of a container for vulnerable packages. A few features stand out. Guided remediation suggests specific package version upgrades that would fix the most vulnerabilities with the least disruption. License scanning checks whether your dependencies use licenses that are compatible with your project's rules. Offline mode lets you scan without an internet connection after downloading a local copy of the vulnerability database. There is also call analysis, which checks whether your code actually calls the vulnerable function in a package, reducing alerts that would not affect you in practice. The underlying OSV.dev database is open and draws from authoritative sources including GitHub Security Advisories and ecosystem-specific advisory databases. Anyone can propose corrections, which keeps the data quality high. Installation involves downloading a prebuilt binary from the releases page or building from source with Go. Running a scan is a single command pointing at your project directory.

Copy-paste prompts

Prompt 1
Using osv-scanner, scan my Go project at ./myapp and show me all high-severity vulnerabilities in its dependencies.
Prompt 2
I have a Docker image called myapp:latest. Walk me through using osv-scanner to scan every layer of that image for vulnerable packages.
Prompt 3
Show me how to run osv-scanner in offline mode after downloading a local copy of the vulnerability database.
Prompt 4
Using osv-scanner's call analysis feature, explain how to check whether my code actually calls into a vulnerable function rather than just having the package installed.
Prompt 5
How do I integrate osv-scanner into a GitHub Actions CI pipeline so every pull request is automatically checked for new vulnerabilities?
Open on GitHub → Explain another repo

← google on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.