Skip to main content

AppThreat's vulnerability database and package search library with a built-in sqlite based storage. OSV, CVE, GitHub, npm are the primary sources of vulnerabilities.

Project description

Introduction

This repo is a vulnerability database and package search for sources such as AppThreat vuln-list, OSV, NVD, and GitHub. Vulnerability data are downloaded from the sources and stored in a sqlite based storage with indexes to allow offline access and efficient searches.

Why vulnerability db?

A good vulnerability database must have the following properties:

  • Accuracy
  • Easy to download, integrate, and use
  • Performance

Multiple upstream sources are used by vdb to improve accuracy and reduce false negatives. SQLite database containing data in CVE 5.0 schema format is precompiled and distributed as files via ghcr to simplify download. With automatic purl prefix generation even for git repos, searches on the database can be performed with purl, cpe, or even http git url string. Every row in the database uses an open specification such as CVE 5.0 or Package URL (purl and vers) thus preventing the possibility of vendor lock-in.

Freeloaders are welcome!

Vulnerability Data sources

  • Linux vuln-list (Forked from AquaSecurity)
  • OSV (1)
  • NVD
  • GitHub

1 - We exclude Linux and oss-fuzz feeds by default. Set the environment variable OSV_INCLUDE_FUZZ to include them.

Linux distros

  • AlmaLinux
  • Debian
  • Alpine
  • Amazon Linux
  • Arch Linux
  • RHEL/CentOS
  • Rocky Linux
  • Ubuntu
  • OpenSUSE/SLES
  • Photon
  • Chainguard
  • Wolfi OS

Installation

pip install appthreat-vulnerability-db

Usage

This package is ideal as a library for managing vulnerabilities. This is used by owasp-dep-scan, a free open-source dependency audit tool. However, there is a limited cli capability available with few features to test this tool directly.

Download pre-built database (Recommended)

Use the ORAS cli to download a pre-built sqlite database (refreshed every 6 hours) containing all application and OS vulnerabilities. This is recommended for all users.

export VDB_HOME=$HOME/vdb
oras pull ghcr.io/appthreat/vdbxz:v6 -o $VDB_HOME
tar -xvf *.tar.xz
rm *.tar.xz

Use any sqlite browser or cli tools to load and query the two databases.

data.index.vdb6 - index db with purl prefix and vers

index

data.vdb6 - Contains source data in CVE 5.0 format stored as a jsonb blob.

database

Manually create the vulnerability database

Cache application vulnerabilities

vdb --cache

The typical size of this database is over 1.1 GB.

Cache application and OS vulnerabilities

vdb --cache-os

Note the size of the database with OS vulnerabilities is over 13 GB.

Cache from just OSV

vdb --cache --only-osv

It is possible to customize the cache behavior by increasing the historic data period to cache by setting the following environment variables.

  • NVD_START_YEAR - Default: 2018. Supports up to 2002
  • GITHUB_PAGE_COUNT - Default: 2. Supports up to 20

CLI search

It is possible to perform a range of searches using the cli.

vdb --search pkg:pypi/xml2dict@0.2.2

# Search based on a purl prefix
vdb --search pkg:pypi/xml2dict

# Full url and short form for swift
vdb --search "pkg:swift/github.com/vapor/vapor@4.39.0"

vdb --search "pkg:swift/vapor/vapor@4.89.0"

# Search by cpe
vdb --search "cpe:2.3:a:npm:gitblame:*:*:*:*:*:*:*:*"

# Search by colon separated values
vdb --search "npm:gitblame:0.0.1"

# Search by CVE id
vdb --search CVE-2024-25169

# Search by git url
vdb --search "https://github.com/electron/electron

License

MIT

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

appthreat-vulnerability-db-6.0.0rc2.tar.gz (75.5 kB view details)

Uploaded Source

Built Distribution

appthreat_vulnerability_db-6.0.0rc2-py3-none-any.whl (74.4 kB view details)

Uploaded Python 3

File details

Details for the file appthreat-vulnerability-db-6.0.0rc2.tar.gz.

File metadata

File hashes

Hashes for appthreat-vulnerability-db-6.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 66bb26043a55bad6d2477520334413f69c0e2452c6987db20b1086c505726515
MD5 6e7db792e334b855902776cc177a5e00
BLAKE2b-256 733939abeb3140bd6cb69828f6d5555201a93e2c634e6a8d4b700761adf42e8e

See more details on using hashes here.

File details

Details for the file appthreat_vulnerability_db-6.0.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for appthreat_vulnerability_db-6.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 034020cf0b63fbbd6a6cbaf625b8f9b7d0e42fba74dc14d55af3f0a97b98b1d4
MD5 df56eb7aba139e32306bcc0f31779df8
BLAKE2b-256 402d71ecea60a3f3b1c763338a50dbc89af138fb6b9cbd8251517b0aec13d066

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page