This release is dedicated to the person who sent me cookies after I was griping about differences in Python 3.7 error handling on Twitter. They were delicious, thank you! Thanks also to the many new contributors who have joined us as part of Google Summer of Code 2022. You can see many new folk had their first commits in this release!
New Features
* CVE Binary Tool 3.1 adds support for [NVD API keys.](https://nvd.nist.gov/general/news/API-Key-Announcement) An NVD API key allows registered users to make a greater number of requests to the API. At this time, the [NVD API documentation says](https://nvd.nist.gov/developers), "The public rate limit (without an API key) is 10 requests in a rolling 60 second window; the rate limit with an API key is 100 requests in a rolling 60 second window."
* cve-bin-tool updates once per day by default to limit connections to NVD, but users in shared environments or running more frequent updates have occasionally seen 403 errors due to exceeded rate limits. Using an API key should alleviate those issues going forwards.
* New support for scanning Java and JavaScript packages has been added. (Yes, this will now detect log4j packages.) The language-specific packages we support now are Java, JavaScript and Python.
* A new offline flag (--offline) has been added to disable all network requests for use in isolated environments. [A guide for using --offline mode can be found here.](https://cve-bin-tool.readthedocs.io/en/latest/how_to_guides/offline.html)
* New support [VEX (Vulnerabity Exploitablity Exchange)](https://www.ntia.gov/files/ntia/publications/vex_one-page_summary.pdf) files. Files could be generated following a scan and then used as a supported triage file.
* Extractor support has been extended to include WAR, EAR, pkg and zst files.
* New checkers: Libsrtp, libseccomp, libebml, libsolv
Changed Features
* Some users had expressed concern that they would prefer not to install the Reportlab dependency on their systems due to security concerns if the library is mis-used, so we no longer install it by default.
* Users intending to use PDF export can use pip install cve-bin-tool[PDF] to add reportlab to their install. or pip install reportlab if they decide they want it later.
* Similarly, users can pip uninstall reportlab at any time and cve-bin-tool will continue to function although without the ability to export PDF files. Users can generate their own using pdf reports using print-to-pdf on an HTML report if needed.
* Python 3.6 support and testing has been dropped as Python 3.6 has reached end of life. (This may affect some users on CentOS.)