GitLab access control & privilege security checks
Admin roles, standing privileges, permission scopes and policy enforcement — the settings that decide how much damage one compromised account can do.
On GitLab, Black Cat runs 9 checks in this area on every scan. Each one below lists its severity, how to fix it, and the compliance controls it satisfies where a control applies. See what access the GitLab connector needs.
Checks (9)
severity: medium Group Membership Unlocked fix difficulty: easy #
Lock GitLab group membership to prevent subgroup owners from adding members outside the hierarchy
- Navigate to Group > Settings > General > Permissions
- Check Membership lock checkbox
- Save changes
- Communicate policy to subgroup owners
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.a NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: critical Project Merge Approvals Disabled fix difficulty: easy #
Require at least one merge request approval for GitLab projects
- Navigate to GitLab Project Settings > Merge requests
- Set 'Approvals required' to at least 1
- Consider enabling 'Prevent approval by author'
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.a NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: critical Project Branch Protection Disabled fix difficulty: easy #
Enable branch protection on the default GitLab project branch to restrict direct pushes
- Navigate to GitLab Project Settings > Repository > Protected branches
- Add the default branch to the protected branches list
- Set push access to 'Maintainers' and merge access to 'Developers + Maintainers'
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.c NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: high Project Force Push Allowed fix difficulty: easy #
Disable force push on the default protected branch of the GitLab project
- Navigate to Project > Settings > Repository > Protected Branches
- Find the default branch
- Disable Allow force push
- Save changes
- Communicate policy to developers
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.c NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: medium Project No Code Owner Approval fix difficulty: medium #
Require code owner approval on the default GitLab project branch and create a CODEOWNERS file
- Navigate to Project > Settings > Repository > Protected Branches
- Find the default branch
- Enable Require approval from code owners
- Create or update CODEOWNERS file
- Save changes
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.a NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: low Deactivated Member Not Removed fix difficulty: easy #
Remove deactivated GitLab members from the group and any subgroups
- Navigate to Group > Members
- Find deactivated member
- Confirm account is no longer needed
- Remove from group
- Verify removal from any subgroups
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-308.a3 NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: low Pending Invitation Not Accepted fix difficulty: easy #
Review and resend or revoke long-pending GitLab group invitations
- Navigate to Group > Members > Invited
- Find pending invitation
- Verify if invitation is still needed
- Resend or revoke as appropriate
- Follow up with invitee if needed
Satisfies: ISO 27001:2022 A.5.15 SOC 2 Type II CC6.1 CIS Controls v8 CIS-06.1 NIST CSF 2.0 PR.AA-05 GDPR (SaaS Security) GDPR-25.2 HIPAA (SaaS Security) HIPAA-312.a NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: medium Group Subgroup Creation Permissive fix difficulty: easy #
Restrict subgroup creation to group owners only
- Navigate to Group > Settings > General > Permissions
- Set "Allowed to create subgroups" to "Owners"
- Save changes
Satisfies: NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2
severity: medium Blocked Member Not Removed fix difficulty: easy #
Remove blocked members from the GitLab group
- Navigate to Group > Members
- Find the blocked member
- Confirm the account is no longer needed
- Remove from the group and any subgroups
Satisfies: NIS2 Directive NIS2-21.i.1 DORA (SaaS Security) DORA-9.2