- Updated the version of the CVE databases used for testing.
- Generate a "not affected" assessment if the vulnerability is disputed.
- Handle CVE List version field with multiple version expressions: a version
prefixed by a comparison operator (
<,<=,>,>=, or=). - Added support for
uvand updated the Developer Guide. - Added a contributing guide.
- Fixed CVE database git repository update when initially cloned from a tag and updated to a new tag.
- Ignore version range if a boundary is a date (YYYY-MM-DD) and the component version is not a date (e.g., a semver).
- Ignore in some cases the version range if a boundary has a distro packaging
version (e.g., with a
.el7suffix), as documented in the design section.
- Improved ZSTD compression support by adding support for the
backports.zstdandzstandardPython packages, which are now optional dependencies. - Improved the simple annotation file format by adding support for new YAML keys as described in the database documentation.
- Updated
spdx_python_modelto version 0.0.6.
- Filtered out
MakefileandKconfigfiles from the affected files list when checking if a component is affected by compiled files. - Filtered the list of compiled sources provided by a component by ignoring
source files if the path contains
<internal>or<built-in>, or ends with a slash. - Detected incomplete lists of compiled kernel sources. The list of compiled
sources is only used if it contains either
init/main.c,include/linux/module.h, or a file ending with.mod.c.
- Changed license from GPL-2.0-only to GPL-2.0-or-later.
- Added ty static type checker and fixed associated warnings.
- Added support for passing multiple
--set-db-cfgflags for the same database ID: In this case the configuration options are merged.
- Removed incorrect product database entry associating "sdl_image" with "simple_directmedia_layer", as they are distinct software components.
- Fixed database deadlock issues when running multiple
sbom-cve-checkinstances in parallel. A unique global lock is now used, as documented in the database locking section. - Fixed detection of the last database update when
max_age_since_last_commit = false. Previously, the database might have been updated too frequently. - Prevented unnecessary recreation of the database index, which could occur when
multiple
sbom-cve-checkinstances run in parallel. - Avoided taking the global lock to create the database index if the index does not need to be saved to disk (cached).
- Relative Paths in TOML: Paths in TOML configuration files can now be relative to the current working directory. By default, paths remain relative to the directory containing the TOML file.
- Products Database: Added a products database to map vendor and product names to Component Identifiers, addressing cases where the CVEList database lacks CPEs.
- CNA Database: Added a CNA database for improved CNA/ADP identification and handling.
- ADP Entry Exclusion: Outdated ADP entries are now excluded if a CNA has updated its entry more recently.
- Enhanced VEX Assessment: Improved VEX assessment generation with clearer messages indicating the version in which vulnerabilities were fixed. See the design documentation for details.
- Version Parsing:
Updated version parsing to support formats like
5-1.3.4. - Dependency Compatibility:
Updated code to ensure compatibility with
spdx_python_model==0.0.5(generated byshacl2code 1.0.1). - Deprecated Options: Removed deprecated option flags.
- New CLI Flag:
Added the
--set-db-cfgargument flag for database configuration from the command line.
- Linux Kernel CVE Ranges: Fixed handling of version ranges for Linux kernel CVEs provided by kernel.org CNA. Ranges are now ignored if the component version does not belong to the branch described by the version range.
- N/A
- Fixed CVE matching in
cvelistV5usingpackageNameby also considering thevendorfield to avoid name collisions across vendors (#16) - Fixed dependency: sbom-cve-check is compatible with spdx_python_model in version 0.0.4, but it is likely not compatible with next version of spdx_python_model without code change.
- Added
--disable-auto-updatesflag to disable automatic updates for all Git databases. This allows runningsbom-cve-checkwithout network access. - Added
--export-process-nativeflag to process only target and/or native components. - Added
--export-spdx-pkg-include-vexflag. For SPDX 3 exports, this flag links VEX information directly to binary (install) package outputs. If omitted, VEX information is linked only to the common recipe generating the binary packages, provided the SPDX 3 document includes such an object (specification package). - Added
summarytext report exporter type (#11). - Exported files can now be generated to
stdout. - Updated the method for extracting packages from an SPDX 3.0 SBOM. The SBOM
no longer requires a
build_Buildobject, and support for specification packages has been added. - Yocto
cve-checkexport files can now include the Yocto Project layer, extracted from the PURL if present. - Annotations are now only considered if the component identifier and version (from the CPE or package version) in the SBOM match the annotation information. Previously if the annotation version did not match, we would still use the annotation information to associate the CVE id to the tested component.
- Added extraction of patches associated with a VEX "fixed" assessment relationship from SPDX 3.0 SBOMs.
- Added support for compression for input and exported files. Files with
the
.zstextension are automatically handled.
- Improved version parsing and range checking (#12, #13).
- Fixed generation of the TOM file produced by
--gen-repro-configwhenauto_update_max_age=was set to0. - Fixed handling of the
cpeApplicabilityproperty incvelistV5entries if invalid (#15).
- Added missing project URLs to the PyPI project page.
- Added support for Python 3.10.
- Added experimental support for Windows.
- Replaced "CVE" terminology with the more generic term "vulnerability" where applicable. This includes renaming various classes and modules.
- Deprecated the following option flags:
--export-filter-cve-without-cvss-score--export-filter-cve-min-cvss-score--export-filter-cve-without-versions--export-list-rejected-cve
- Improved performance when removing outdated assessments or CVSS metrics associated with vulnerabilities.
- Enhanced logging messages for better clarity.
- Added statement and justification fields to the exported Yocto VEX manifest.
- Introduced the
arch=database option and thearch-onlyYAML key for simple annotations. - Included package version alongside component version in exported files, as the two may differ during vulnerability analysis.
- Added the ability to generate a TOML configuration file to reproduce the
current tool execution. Use the
--gen-repro-configflag to generate this file. - Improved code and user documentation.
- Fixed handling of
build_Buildobjects without a name in SPDX3 files. - Restored support for parallel analysis execution, which was broken prior to the first release.
- Resolved issues with annotations in SPDX3 files when duplicate vulnerability objects (multiple objects with the same CVE identifier) are present.
- Fixed compatibility with
python-dateutil 2.8.1for Python 3.10 users. - Ensured plugins are loaded in the correct namespace, as documented:
sbom_cve_check.plugins.
First released version