Vulnerabilities are created as confidential by default - backstage
Problem to solve
The backstage implementation of the First-class Vulnerabilities has introduced the Vulnerability entity. The MVC Standalone Vulnerability objects will provide the frontend representation for these objects. But currently, they are created as "visible by anyone object".
Intended users
Proposal
According to engineering discovery, Vulnerabilities should be created confidential by default. Confidential Vulnerabilities should work in the same way as Confidential Issues from the UX and permissions perspective.
Permissions and Security
Copy the confidential Issues permissions model to Vulnerabilities
Documentation
- [-]
Update thethis is not required, it's enough to update the Permissions page stub, which has already been performed.Vulnerabilities user docs page
- [-]
Update thethe sameCreate a Vulnerability from Finding API docs entry
Testing
See the development log.
What does success look like, and how can we measure that?
GitLab users won't have the vulnerabilities information disclosed for their projects.
What is the type of buyer?
Links / references
Development log
Status
-
Introduce new permission read_vulnerability
forread
operations on Vulnerabilities as an alias forread_project_security_dashboard
ability - [-]
Implement theThere's no need in separateVulnerabilityPolicy
rules for confidentiality similarly toIssuePolicy
and use theread_vulnerability
ability as a prerequisite for all checksVulnerabilityPolicy
, everything can be decided atEE::ProjectPolicy
-
Add new tests -
New access tests for GET /projects/:id/vulnerabilities
endpoint -
New access tests for create_vulnerability
-
First, wait for !18283 (merged) is merged -
Vulnerabilities::CreateService
-
POST /projects/:id/vulnerabilities
endpoint
-
-
New access tests for resolve_vulnerability
-
Vulnerabilities::ResolveService
-
POST /vulnerabilities/:id/resolve
endpoint
-
-
New access tests for dismiss_vulnerability
-
Vulnerabilities::DismissService
-
POST /vulnerabilities/:id/dismiss
endpoint
-
-
Decisions
- Vulnerabilities are confidential but the minimum access level required is
Developer
- There's no need in separate
VulnerabilityPolicy
, everything can be decided atEE::ProjectPolicy
Edited by Victor Zagorodny