Description
- Related GSoC 2025: Start here #4712
cve-bin-tool: VEX tooling and improvements
Project description
In GSoC 2024, we added support for triage using the VEX format, which is a set of standards for storing additional information about how vulnerabilities affect a given product. For example, a product may have backported patches or configuration changes in place that mean the security vulnerability does not apply even if the version of the component being used has a weakness that will show up on scans.
One of the challenges of VEX is that the rest of the toolchain around it isn't great. It's a JSON-based format which is convenient for machines, but it can be a pain for humans to edit for a variety of reasons, including that only certain values are allowed but typically humans need to use a text editor that gives them no hints about what can and cannot go in a given field.
We're looking to extend cve-bin-tool to provide some tools for VEX editing and validation, as well as likely extend our support of VEX. Right now, cve-bin-tool does not have a graphical user interface as most of our users need it to work on the command line, nor do we provide an online service. So we will need to work within those limitations at this time.
- Add triage capabilities to our html reports, including the ability to save triage and updated reports. This needs to work offline in the user's browser, so will likely rely heavily on HTML5/Javascript rather than any sort of back end.
- Add command line tools for validation and fixing of invalid VEX files, on the assumption that users will often have slightly incorrect files and need help. We may also want to have tooling to help guide users to remove or archive triage information that is no longer applicable (for example, when a component is updated and the original CVE no longer applies)
- Add command line tools for generation of VEX files. We make blank ones already, but we could probably look at ways to help walk users through which issues are new and should be triaged.
@anthonyharrison will likely be the mentor on this project, so I'll leave him to fill in more details in the comments below.
Related reading
- https://cyclonedx.org/capabilities/vex/
- https://www.cisa.gov/sites/default/files/publications/VEX_Use_Cases_Document_508c.pdf
Skills
- python
- javascript
- software security: knowledge of how software vulnerabilities are triaged, mitigated and solved would be very helpful here.
- You can learn more abou this as you go, but it's worth doing some background reading on how open source projects and corporations handle vulnerabilities if you can because it'll help inform what you propose.
Difficulty level
- medium/hard.
Project Length
- 350 hours (e.g. full-time for 10 weeks or part-time for longer)
- It would be possible to do part of this project in a 175 hour project, but we may prefer candidates who have the time to do more assuming similar levels of ability
Mentor
- The primary mentor for this project will likely be @anthonyharrison . Please ask all questions on this issue rather than sending email so you can benefit from the expertise of other contributors and mentors. (and so Anthony doesn't get swamped)
GSoC Participants Only
This issue is a potential project idea for GSoC 2025, and is reserved for completion by a selected GSoC contributor. Please do not work on it outside of that program. If you'd like to apply to do it through GSoC, please start by reading #4712.