CVE-2023-7028 — GitLab Community and Enterprise Editions Improper Access Control Vulnerability

CVE-2023-7028

GitLab CE/EE — Password Reset to Unverified Email Enables Silent Account Takeover Without Victim Interaction; CVSS 10.0; Affects GitLab 1.0 to 16.7.1

What is GitLab?

GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, issue tracking, and container registry in a single application. GitLab CE (Community Edition) and EE (Enterprise Edition) are self-hosted by software companies, technology organizations, government agencies, and enterprises — storing source code, infrastructure configurations, deployment pipelines, secrets (API keys, certificates), and development workflows. Account takeover on GitLab provides an attacker with access to all repositories owned by the compromised account, the ability to modify code and pipelines (supply chain attack potential), access to CI/CD secrets, and depending on permissions, access to deployment infrastructure.

Overview

CVE-2023-7028 is a critical improper access control vulnerability (CVSS 10.0) in GitLab CE/EE that allows an unauthenticated attacker to trigger a password reset email for any GitLab account to be sent to an arbitrary, unverified email address — enabling silent account takeover with no victim interaction required. The vulnerability affects all GitLab versions from 1.0 through 16.7.1, patched in 16.7.2. The scope changed (S:C) rating reflects that successful exploitation affects all repositories and resources accessible by the victim user — extending impact beyond the vulnerable GitLab instance to any downstream systems accessed via GitLab credentials.

Affected Versions

Product Vulnerable Fixed
GitLab CE/EE 16.1.0 – 16.1.5 16.1.6
GitLab CE/EE 16.2.0 – 16.2.8 16.2.9
GitLab CE/EE 16.3.0 – 16.3.6 16.3.7
GitLab CE/EE 16.4.0 – 16.4.4 16.4.5
GitLab CE/EE 16.5.0 – 16.5.5 16.5.6
GitLab CE/EE 16.6.0 – 16.6.3 16.6.4
GitLab CE/EE 16.7.0 – 16.7.1 16.7.2

Technical Details

CWE-640 (Weak Password Recovery Mechanism for Forgotten Password). The GitLab password reset flow contains a vulnerability in how it validates email addresses during the reset request. When a user requests a password reset, GitLab is supposed to send the reset link only to the verified, primary email address on the account. A flaw in the validation logic allows an attacker to manipulate the password reset request so that the reset email is sent to an unverified (attacker-controlled) email address.

The attacker's process:

  1. Identify the target GitLab account (by username or email, often publicly visible)
  2. Submit a password reset request with the target account identifier, manipulated to route the reset email to the attacker's email address
  3. Receive the password reset link at the attacker's address
  4. Follow the link to set a new password on the victim's account
  5. Log in as the victim — full account takeover

The victim receives no notification and is not prompted to take any action. Two-factor authentication (2FA), if enabled on the account, is a partial mitigating control — an attacker who completes the password reset still needs the 2FA code to log in.

Discovery

Discovered and reported to GitLab through their HackerOne bug bounty program. GitLab backported the fix to multiple older minor versions (16.1.6 through 16.6.4) reflecting the broad version range affected. Active exploitation was confirmed by May 2024, prompting the CISA KEV addition four months after the patch.

Exploitation Context

GitLab self-hosted instances are targets for supply chain attacks: an attacker who takes over a developer's account with access to production repositories or CI/CD pipelines can inject malicious code into software builds, steal deployment secrets, or modify infrastructure-as-code configurations. The CVSS 10.0 and no-authentication-required vector made this a high-priority target for threat actors scanning for unpatched GitLab instances following disclosure. Organizations that host source code for critical software (security tools, infrastructure components, customer-facing applications) are at elevated risk if developers' accounts are compromised via this vulnerability.

Remediation

  1. Upgrade to GitLab 16.7.2, 16.6.4, 16.5.6, or the appropriate backport for your version branch.
  2. For GitLab instances that could not be immediately patched: temporarily enable 2FA for all users — this doesn't prevent password reset via the vulnerability but requires the attacker to also steal the TOTP code before gaining access.
  3. Review GitLab authentication logs for password reset requests submitted around the disclosure period (November 2023 to patch date) for unusual patterns — resets sent to unknown email addresses indicate exploitation.
  4. Audit all admin and maintainer accounts for recent password resets, unfamiliar SSH keys added, or CI/CD variable modifications that could indicate post-compromise actions.
  5. Enable GitLab's audit events log to capture all future password reset requests with source IP and requested destination address.
  6. Require 2FA for all accounts with access to sensitive repositories or production deployment pipelines as a permanent policy.

Key Details

PropertyValue
CVE ID CVE-2023-7028
Vendor / Product GitLab — GitLab CE/EE
NVD Published2024-01-12
NVD Last Modified2025-10-24
CVSS 3.1 Score10
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
SeverityCRITICAL
CWE CWE-640 find similar ↗
CISA KEV Added2024-05-01
CISA KEV Deadline2024-05-22
Known Ransomware Use No

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Required Action

CISA BOD 22-01 Deadline: 2024-05-22. Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Timeline

DateEvent
2024-01-11GitLab releases 16.7.2 (and backports 16.5.6, 16.6.4) patching CVE-2023-7028
2024-01-12CVE-2023-7028 formally published — CVSS 10.0
2024-05-01CISA adds to Known Exploited Vulnerabilities catalog — active exploitation confirmed 4 months after patch
2024-05-22CISA BOD 22-01 remediation deadline

References

ResourceType
GitLab Security Release — 16.7.2 (CVE-2023-7028) Vendor Advisory
NVD — CVE-2023-7028 Vulnerability Database
CISA KEV Catalog Entry US Government