DependencyTrack / DependencyTrack/dependency-track

DTrack v4 Portfolio Access Control allows Teams to create parent projects outside their assigned project

Open
#6,898 0 comments 0 reactions 0 assignees View on GitHub
defect in triage
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

### Current Behavior

In Portfolio Access Control, when assigning a Team "Project access" to one or more projects, the permission PROJECT_CREATION_UPLOAD allows Teams to noy only create new child projects within their assigned project, but also to create an arbitrary number of new, top-level parent projects in DTrack. Shouldn't they just be able to create children within the project(s) assigned to that Team?

Related: #1127

### Steps to Reproduce

1. Install DTrack v4.12.x
2. Create a Team
3. Assign permissions to the team including PROJECT_CREATION_UPLOAD
4. Create a parent project for the team
5. Assign the Team access to that parent project
6. Login as a member of that team
7. Upload SBOMs not specifying a parent project ID, which will create new parent projects

### Expected Behavior

Teams should only be able to create projects within their assigned parent projects. There could be a new permission to create new parent projects outside of their assigned projects (PARENT_PROJECT_CREATION_UPLOAD?). Or, alternatively, Teams could be given access to a default "DTrack Root" project if they need to create new top-level parents.

### Dependency-Track Version

4.x

### Browser

Microsoft Edge

### Checklist

- [x] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/main/CONTRIBUTING.md#filing-issues)
- [x] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this defect was already reported

Contributor guide

Open the contributing guide

Research direction

Reproduce the behavior in Dependency-Track v4.12.x using the listed team, permission, project-access, and SBOM-upload steps, then trace the authorization entry point handling PROJECT_CREATION_UPLOAD when no parent project ID is supplied. Done means team members can create child projects only within assigned parent projects, while the intended behavior for new top-level parents is clarified and covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authorization, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.