Advisory sources

Advisory, exploitation, and exploit-prediction data used by the vulnerabilities selector function and shown in the dashboard.

The vulnerabilities selector function matches package versions, and the OS packages inside container images, against the Bytesafe advisory dataset. The same data is behind the vulnerability pages in the dashboard; see Research advisories and malware.

Advisory sources

Bytesafe builds the advisory dataset from these sources.

SourceURLUsed for
National Vulnerability Database (NVD)nvd.nist.govCVE metadata, CVSS scores, publication dates, and modified dates
GitHub Advisory Database (GHSA)github.com/advisoriesOpen source package advisories
GitLab Advisory Databasegitlab.com/gitlab-org/advisories-communityOpen source package advisories
Go Vulnerability Databasepkg.go.dev/vulnGo module advisories
AlmaLinux Errataerrata.almalinux.orgAlmaLinux security advisories
Alpine secdbsecdb.alpinelinux.orgAlpine Linux security advisories
Amazon Linux Security Centeralas.aws.amazon.comAmazon Linux security notices
Amazon Linux 2 Security Centeralas.aws.amazon.com/alas2.htmlAmazon Linux 2 security notices
Arch Linux Security Trackersecurity.archlinux.orgArch Linux security advisories
CBL-Mariner vulnerability datagithub.com/microsoft/CBL-MarinerVulnerabilityDataCBL-Mariner security advisories
Debian Security Bug Trackersecurity-tracker.debian.orgDebian security tracking
Oracle Linux OVALlinux.oracle.com/security/ovalOracle Linux OVAL definitions
Photon Security Advisoriesgithub.com/vmware/photon/wiki/Security-AdvisoriesVMware Photon OS advisories
RHEL/CentOS OVALredhat.com/security/data/oval/v2Red Hat Enterprise Linux and CentOS OVAL definitions
RHEL/CentOS Security Dataredhat.com/security/data/metricsRed Hat CVE assessments and scores
Rocky Linux UpdateInfodownload.rockylinux.orgRocky Linux security updates
SUSE Security CVRFftp.suse.com/pub/projects/security/cvrfSUSE Linux Enterprise and openSUSE advisories
Ubuntu CVE Trackerpeople.canonical.com/~ubuntu-security/cveUbuntu CVE tracking
Wolfi and Chainguard security datapackages.wolfi.devWolfi and Chainguard security advisories
Kuberneteskubernetes.ioKubernetes Security Response Committee CVEs

Exploitation and prediction data

These sources add to what is known about a vulnerability, rather than naming affected packages:

SourceURLUsed for
FIRST EPSSfirst.org/epssExploit probability and percentile by CVE. Rules compare against probability, not percentile
European Vulnerability Database (EUVD)euvd.enisa.europa.euENISA's record for the vulnerability, with its EUVD ID, score, and affected products. Shown in the dashboard
Known exploited vulnerabilities (KEV)CISA KEV and the EU catalog in EUVDWhether a vulnerability is known to be exploited, and since when. Shown in the dashboard

EUVD records and known-exploited status are shown on a vulnerability's page in the dashboard. They do not change what a rule matches: rules compare CVSS score and EPSS probability only. When a vulnerability has no EPSS score of its own, such as a GHSA advisory, the dashboard shows the score of its CVE alias where EUVD links the two.

Ecosystem coverage

Package advisories are matched for every supported ecosystem except Conda: the dataset has no Conda advisories, and the vulnerabilities selector function is not supported for Conda firewalls.

On a container firewall, the OS packages installed in an image are matched against the advisories of the image's distribution and release. Images based on Alpine, Wolfi and Chainguard, Debian, Ubuntu, Red Hat Enterprise Linux, CentOS, Rocky Linux, AlmaLinux, Amazon Linux, SUSE Linux Enterprise, openSUSE Leap, Photon OS, and CBL-Mariner are covered.

Version matching uses each ecosystem's or distribution's native version scheme. Package names are normalized before matching according to each ecosystem's rules.

CVSS score

A rule like maxCvssScore: 7.0 compares against one score per vulnerability.

That score comes from one vendor, chosen when the dataset is built. If the vendor published a CVSS vector, the firewall uses the score of the newest CVSS version it scored: 4.0, then 3.x, then 2.0. If the vendor published only a severity label, the firewall maps the label to a score:

SeverityScore used
CRITICAL10
HIGH8.9
MEDIUM6.9
LOW3.9

A vulnerability with no score and no severity is unscored. It does not cross any maxCvssScore threshold, so a vulnerabilities rule does not block on it. The dashboard shows it as Unscored, and the CLI as UNKNOWN (?).

For OS packages in a container image, the distribution's own assessment is used when it published a CVSS vector. A distribution knows how it builds and ships a package, so its score often differs from NVD's for the same CVE. When the distribution published only a severity label, or nothing, the score above is used.

EPSS score

Each vulnerability can carry an EPSS score from FIRST. EPSS has two values:

  • probability: likelihood of exploitation, 0 to 1.
  • percentile: ranking compared with other CVEs, 0 to 1.

The selector's maxEpssScore compares against probability.

Both thresholds must be exceeded for a match: CVSS score must be greater than maxCvssScore, and EPSS probability must be greater than maxEpssScore. Details and examples are in Block vulnerable packages.

Freshness and score changes

Advisory data changes after publication. A CVE often appears with a provisional CVSS score that is revised once analysis completes: 7.5 can become 10, a critical can be downgraded, and an advisory can be withdrawn entirely. EPSS probabilities are recalculated as exploitation data comes in.

The firewall stores no verdicts. Every download request is evaluated against the advisory dataset, so score changes take effect in both directions:

  • Score drops below your threshold: the vulnerabilities rule stops matching, and the next request for the package passes. Nothing needs to be reset. An exception created while the package was blocked stops being consulted, because exceptions are only checked after the rule matches.
  • Score rises above your threshold: the rule starts matching, and the next request is blocked. This applies even if the same version was downloaded through the firewall before; the firewall's artifact cache does not bypass rule evaluation.
  • Advisory withdrawn: it is excluded from matching entirely.

Two things bound how quickly a change shows up:

  • Bytesafe rebuilds the dataset from its sources several times a day.
  • Only requests that reach the firewall are evaluated. A version already sitting in a client's local package manager cache, or in a repository manager cache in front of the firewall, is served from there without a new firewall decision.

Other package signals

  • Malware detection combines package-content findings with dedicated malicious-package intelligence. It does not use the vulnerability dataset described on this page. See Block malware.
  • Deprecated and unlisted status comes from upstream registry metadata. See Block deprecated packages.