Skip to content

Update Security Report format to make the location an array

Problem to solve

The current common format has a vulnerabilities[].location field which is "A node that tells where the vulnerability is located.". While this will be enough in most cases, there are analyzers that will provide a list of locations instead, to report a complete flow to the detected vulnerability.

NOTE: This is NOT about having reporting multiple, distinct locations for the same vulnerabilities.

Intended users

Further details

Some partners are asking for this change to be able to provide the right data to users: In some cases, the reported Location is a set of locations, like a stack trace. The full control flow is reflected by this array of locations. This change makes sense and could be maybe backward compatible with the current implementation.

Proposal

I see 2 ways (please feel free to suggest other ideas) to achieve this:

  1. Add a new field to support a kind of stack trace, along with a vulnerabilities[].location. It's a fully backward compatible change, but breaks the data in two pieces.
  2. Change the current vulnerabilities[].location to become a vulnerabilities[].location[]. Not backward compatible.

Permissions and Security

N/A

Documentation

Change https://docs.gitlab.com/ee/user/application_security/sast/index.html#reports-json-format and other places where this format is being used.

Testing

Solution 2 requires to update almost all QA and tests.

What does success look like, and how can we measure that?

Users can benefit from extra data from advanced analyzers.

What is the type of buyer?

GitLab Ultimate

Links / references

  • This could influence the result of this UX discovery: #8426 (closed)

/cc @gonzoyumo @twoodham @sethgitlab @matt_wilson

Edited by Fabien Catteau