TL;DR

Hầu hết dev ship code mà không biết một nửa dependency đang là bom nổ chậm. OSV-Scanner — công cụ open-source của Google — fix việc đó: quét lockfiles, container images và cả vendored C/C++ code, map từng dependency với database OSV.dev. Hỗ trợ 11+ ecosystem (npm, pip, cargo, maven, go modules, gem…), có call analysis để chỉ báo vuln nào code thực sự gọi tới, guided remediation gợi ý version upgrade fix nhiều issue nhất với ít rủi ro nhất, và chạy được offline. Apache-2.0, hoàn toàn miễn phí. Latest release: v2.3.5 (Mar 25, 2026).

Chuyện gì đang xảy ra

OSV-Scanner là frontend chính thức của OSV database và CLI trên thư viện OSV-Scalibr. Viết bằng Go, repo google/osv-scanner hiện 8.8k stars. Google công bố V2 ngày 17/03/2025 với bước nhảy lớn: thêm guided remediation, container image scanning, và detect vendored C/C++ code. Bản mới nhất v2.3.5 (25/03/2026) mở thêm transitive scanning cho Python requirements.txt qua deps.dev API — cuối cùng Python dev cũng thấy được các indirect dependency đang ẩn gì.

Vì sao quan trọng

Supply-chain attack đã trở thành dạng tấn công phổ biến nhất nhắm vào phần mềm modern. Log4Shell, event-stream, ua-parser-js, xz-utils backdoor — tất cả đều là vuln ẩn trong transitive dependency, không ai nhìn thấy đến khi nổ. Vấn đề ở các scanner miễn phí: chỉ cover một ecosystem, flood alert không có reachability filtering, bắt phải đẩy code/dependency tree lên cloud, hoặc bỏ qua hoàn toàn C/C++ vendored code (nơi nhiều CVE nặng ký sống).

OSV-Scanner gom tất cả vào một CLI duy nhất — Apache-2.0, offline-capable, multi-ecosystem — và thêm 2 thứ hiếm có trong tool miễn phí: call analysis (chỉ báo vuln trong function code thực sự gọi tới) và guided remediation (gợi ý upgrade path tối ưu theo độ sâu, severity, và ROI). Ít noise hơn = dev thực sự đọc alert thay vì mute toàn bộ. Database OSV.dev đứng sau — đây là schema CVE mà Google, GitHub Security Advisory, Python PSF, Rust RustSec, Go, Dart đã đồng ý chuẩn hoá — nên coverage rộng và update nhanh.

Fact kỹ thuật

  • 11+ ecosystem: C/C++, Dart, Elixir, Go, Java, JavaScript, PHP, Python, R, Ruby, Rust
  • 19+ lockfile types: package-lock.json, yarn.lock, pnpm-lock.yaml, Pipfile.lock, poetry.lock, requirements.txt, Cargo.lock, Gemfile.lock, go.mod, pom.xml, build.gradle, composer.lock, packages.lock.json
  • Vendored C/C++ scanning: detect source third-party copy-paste vào repo, không cần lockfile
  • Container image scanning: scan base image + installed packages trên Linux OS layers
  • Offline mode: --download-offline-databases pull DB một lần, scan sau đó zero network
  • Call analysis (reachability): chỉ báo vuln trong function code thực sự gọi — cắt false positive đáng kể
  • GitHub Action chính thức google/osv-scanner-action để wire vào CI/CD
  • Viết 87.6% Go, query OSV.dev + deps.dev API

Install:

go install github.com/google/osv-scanner/v2/cmd/osv-scanner@latest

Hoặc tải prebuilt binary từ releases page.

So với các scanner khác

Tiêu chíOSV-ScannerSnyk (free)DependabotTrivy
GiáFree, Apache-2.0Free tier có hạnFree (GitHub only)Free, open source
Multi-ecosystem11+NhiềuNhiều (GitHub)Container-focused
Call analysisCó (paid)KhôngKhông
Guided remediationCó (npm, Maven, Gradle)Có (paid)Auto-PR cơ bảnKhông
Offline modeKhôngKhông
Vendored C/C++Hạn chếKhôngKhông

Use cases

  • Indie dev audit project cá nhân: một lệnh scan toàn thư mục
  • CI/CD pipeline: dùng official GitHub Action cho gate mỗi PR
  • Monorepo đa ecosystem: một tool xử lý Node + Python + Go + Rust
  • Môi trường air-gapped / quy định khắt khe: offline DB
  • Container registry gate: scan image trước khi deploy
  • Codebase C/C++ legacy với vendored third-party libs
  • Python team cuối cùng cũng thấy được transitive deps qua requirements.txt

Một lệnh quét toàn project:

osv-scanner scan source -r ./

Scan container image:

osv-scanner scan image my-image:tag

Offline mode lần đầu:

osv-scanner --offline --download-offline-databases ./

Giới hạn & pricing

Hoàn toàn miễn phí, Apache-2.0. Vài giới hạn cần biết:

  • Guided remediation hiện chỉ support npm, Maven, Gradle — Go và Python đang trong roadmap
  • Call analysis tốt nhất cho Go, đang mở rộng cho language khác
  • CLI-first, không có hosted dashboard (Snyk / GitHub Security tab có UX đẹp hơn)
  • Phụ thuộc coverage của OSV.dev — rất rộng nhưng không 100%

Sắp tới

Google đang expand guided remediation sang Go và Python, đồng thời làm call-graph reachability sâu hơn cho nhiều ngôn ngữ. V2.3.5 đã mở Python transitive scanning — bước đệm rõ ràng cho support Python đầy đủ hơn. Nếu đang ship code với lockfile mà chưa từng scan, command sau đáng chạy ngay lúc này:

osv-scanner scan source -r ./

Nguồn: google/osv-scanner, Google Security Blog, osv.dev, @_vmlops.