Skip to main content

Vexy - Generate VEX in CycloneDX

shield_gh-workflow-test shield_rtfd shield_pypi-version shield_docker-version shield_license shield_twitter-follow


This project provides a runnable Python-based application for generating VEX (Vulnerability Exploitability Exchange) in CycloneDX format.

This tool is intended to be supplied a CycloneDX SBOM file and will produce a separate VEX which contains known vulnerabilities from a selection of publicly available data sources.

CycloneDX is a lightweight BOM specification that is easily created, human-readable, and simple to parse.

Read the full documentation for more details.

Why?

A SBOM (Software Bill of Materials) is great for cataloging / knowing what components compose a software product.

The same SBOM (in CycloneDX format) can also note known vulnerabilities. What is known is for a given point in time - and will change as new vulnerabilities are discovered or disclosed.

CycloneDX allows for separate BOM documents to reference each other through their BOM Link capability.

Wouldn't it be great if you could periodically generate a VEX based from your SBOM to keep things up to date, without having to generate a fresh SBOM entirely?

That is where vexy comes in.

Installation

Install this from PyPi.org using your preferred Python package manager.

Example using pip:

pip install vexy

Example using poetry:

poetry add vexy

Usage

Basic usage

$ vexy --help

usage: vexy [-h] -i FILE_PATH [--format {xml,json}] [--schema-version {1.4}] [-o FILE_PATH] [--force] [-X]

Vexy VEX Generator

options:
  -h, --help            show this help message and exit
  -X                    Enable debug output

Input CycloneDX BOM:
  Where Vexy shall obtain it's input

  -i FILE_PATH, --in-file FILE_PATH
                        CycloneDX BOM to read input from. Use "-" to read from STDIN.

VEX Output Configuration:
  Choose the output format and schema version

  --format {xml,json}   The output format for your SBOM (default: xml)
  --schema-version {1.4}
                        The CycloneDX schema version for your VEX (default: 1.4)
  -o FILE_PATH, --o FILE_PATH, --output FILE_PATH
                        Output file path for your SBOM (set to '-' to output to STDOUT)
  --force               If outputting to a file and the stated file already exists, it will be overwritten.

Advanced usage and details

See the full documentation for advanced usage and details on input formats, switches and options.

Python Support

We endeavour to support all functionality for all current actively supported Python versions. However, some features may not be possible/present in older Python versions due to their lack of support.

Contributing

Feel free to open issues, bugreports or pull requests.
See the CONTRIBUTING file for details.

Vexy is Copyright (c) Paul Horton. All Rights Reserved.
Permission to modify and redistribute is granted under the terms of the Apache 2.0 license.
See the LICENSE file for the full license.

Metadata

Release files for vexy 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vexy 0.3.1
File Size Uploaded
vexy-0.3.1.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vexy 0.3.1
File Interpreter ABI Platform
vexy-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 42.2 kB

Release files / vexy-0.3.1.tar.gz

Download URL vexy-0.3.1.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f70b92772a08637295f0b4dd687f3e8c7cc9aaa4c5ac97a03da0c0db36840428
BLAKE2b-256 checksum
How to use checksums
3c6b0e37870dcb38f4d77a3a085a9c7c0a81f12776173312e7782319c8e8339e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.28.2 requests-toolbelt/0.10.1 urllib3/1.26.14 tqdm/4.64.1 importlib-metadata/6.0.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.10

Release files / vexy-0.3.1-py3-none-any.whl

Download URL vexy-0.3.1-py3-none-any.whl
Size 25.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
741d41e541079ccbd9a9865b58817e4269b2053898a3d03f53e6c0ee39131320
BLAKE2b-256 checksum
How to use checksums
eb8c64a722df33de4536a17aac51af21298f91e7dac2c484a50479ace1361de8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.9.6 readme-renderer/37.3 requests/2.28.2 requests-toolbelt/0.10.1 urllib3/1.26.14 tqdm/4.64.1 importlib-metadata/6.0.0 keyring/23.13.1 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.10

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.7

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page