vulnlog suppress
Generates suppression files for SCA scanners. These files contain vulnerability identifiers that instruct the scanner to exclude the corresponding findings.
vulnlog suppress <file> [flags]
| Flag | Description |
|---|---|
|
Output file path, or |
|
Output directory for the suppression files. Defaults to the current directory.
Mutually exclusive with |
|
Output format: |
|
Filter on reporter. |
|
Filter on release, include all releases up to and including that release.
A vulnerability whose |
|
Filter on tags. Use multiple times to filter on multiple tags. |
|
Use as the file argument to read from STDIN. |
vulnlog suppress full-example.vl.yaml
Wrote: /path/to/.snyk
Wrote: /path/to/.trivyignore.yaml
vulnlog suppress full-example.vl.yaml --release 8.1.1 --reporter snyk
Wrote: /path/to/.snyk
vulnlog suppress full-example.vl.yaml --reporter trivy -o .myTrivy
Wrote: /path/to/.myTrivy
vulnlog suppress full-example.vl.yaml --reporter trivy --format generic
Wrote: /path/to/trivy.generic.json
vulnlog suppress vulnlog.yaml --release 8.0.0 --reporter trivy
The CVE is fixed on the dev branch and the resolution targets the next, unpublished release.
Until that release ships, the scanner running against the deployed 8.0.0 image keeps flagging the CVE.
Generating the suppression file with --release 8.0.0 includes the entry, so CI stays green.
The vulnerability still appears as open in the HTML report under the same release.
The pending-fix report needs an empty suppress: { } block on the relevant report so the entry is eligible for suppression.
vulnlog suppress --reporter trivy - -o - < full-example.vl.yaml > .myTrivy
-o (including -o - for stdout) requires a single reporter.
Set --reporter to pick one, or use an input that only applies to one reporter.
To write all applicable suppression files in one go, use --output-dir <dir> instead.
|
Seeing what was skipped
Not every entry ends up in a suppression file: a format only accepts matching identifier types (a CVE id cannot go into a .snyk file), resolved vulnerabilities are not suppressed, and expired suppressions are dropped.
Run with -v to see each skipped entry and the reason:
vulnlog -v suppress full-example.vl.yaml
verbose: skipped CVE-2026-1234 for .snyk: the snyk format requires SNYK ids
Output examples
---
ignore:
SNYK-JAVA-TOOLSJACKSONCORE-15907550:
- '*':
reason: The affected `StreamReadConstraints` is not used in the application.
---
vulnerabilities:
- id: GHSA-2m67-wjpj-xhg9
statement: The affected `StreamReadConstraints` is not used in the application.
[advisories]
ignore = [
"RUSTSEC-2024-0001",
"RUSTSEC-2021-0073",
]