CVE-2024-9164
High · 8.8CVSS
8.8
EPSS
1.0%
Published
Oct 11, 2024
CISA due date
—
Cloudanix analysis
A problem in GitLab let some users start automated code builds on branches they were not supposed to touch, which could let them run code or access information they should not see.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Application
- Class
- Authorization Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw bypasses authorization checks allowing authenticated users to trigger CI/CD pipeline execution on arbitrary branches they lack permissions for in GitLab EE.
Why it matters to the business
Organizations face risk of unauthorized code builds that could expose secrets, run unvetted code, or disrupt development pipelines; the issue affects widely deployed GitLab instances used in software development.
How an attack unfolds
An attacker with basic project access crafts API or web requests specifying unauthorized branch names when triggering pipelines; the missing authorization enforcement permits the pipeline to run on the chosen branch, enabling further actions such as secret access or malicious job execution.
How to fix it
Upgrade GitLab EE to 17.2.9, 17.3.5, 17.4.2 or later; the fix is included in commit 91146650fd2d7d080662a536b1d04a5c96f451be. Apply the update across all instances and verify no custom pipeline configurations rely on the bypassed checks.
How to confirm the fix worked
Confirm the running GitLab version meets or exceeds the fixed releases; attempt to trigger pipelines on restricted branches after the update and verify that authorization denials are enforced.
Typical attack path
- Obtain authenticated access to a GitLab EE project
- Identify pipeline trigger endpoints or UI paths
- Craft requests containing arbitrary branch references
- Submit the request to execute the pipeline
- Use successful pipeline run to access artifacts, secrets, or perform additional actions
How to detect it
Search GitLab application and audit logs for pipeline trigger events where the branch name does not match the user's expected permissions; look for API calls to pipeline endpoints containing unexpected branch parameters.
What your security team should do
- Prioritize upgrade of all GitLab EE instances to the fixed versions within the next maintenance window
- Review and tighten branch protection rules and pipeline trigger permissions
- Enable enhanced logging for pipeline creation events
- Audit recent pipeline runs for executions on unexpected branches
The record
An issue was discovered in GitLab EE affecting all versions starting from 12.5 prior to 17.2.9, starting from 17.3, prior to 17.3.5, and starting from 17.4 prior to 17.4.2, which allows running pipelines on arbitrary branches.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Bitnami | gitlab | 12.5.0 | 17.2.9 |
| Ubuntu:16.04:LTS | gitlab | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gitlab | 0 | No fix |
Related vulnerabilities
- CVE-2026-1751 A vulnerability has been discovered in GitLab CE/EE affecting all versions starting with… Also affects gitlab
- CVE-2025-3950 Exposure of Private Personal Information to an Unauthorized Actor in GitLab Also affects gitlab
- CVE-2025-9222 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in… Also affects gitlab
- CVE-2025-10569 Allocation of Resources Without Limits or Throttling in GitLab Also affects gitlab
- CVE-2025-11246 Insufficient Granularity of Access Control in GitLab Also affects gitlab
- CVE-2025-13772 Missing Authorization in GitLab Also affects gitlab
- CVE-2025-13761 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in… Also affects gitlab
- CVE-2025-13781 Missing Authorization in GitLab Also affects gitlab