CVE-2023-2478
📋 TL;DR
This vulnerability allows unauthorized GitLab users to attach malicious runners to any project via a GraphQL endpoint. It affects GitLab Community Edition and Enterprise Edition installations running vulnerable versions. Attackers could potentially execute arbitrary code on affected systems.
💻 Affected Systems
- GitLab Community Edition
- GitLab Enterprise Edition
📦 What is this software?
Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →Gitlab by Gitlab
GitLab is a complete DevOps platform providing source code management, CI/CD pipelines, security scanning, container registry, and collaboration tools used by millions of developers and thousands of enterprises worldwide. As both a cloud-hosted SaaS offering (GitLab.com) and self-managed software, G...
Learn more about Gitlab →⚠️ Risk & Real-World Impact
Worst Case
An attacker gains full control of the GitLab server through malicious runner execution, leading to data theft, system compromise, and lateral movement within the network.
Likely Case
Unauthorized users attach malicious runners to projects, potentially executing arbitrary code in the context of the GitLab runner, compromising project data and CI/CD pipelines.
If Mitigated
With proper access controls and network segmentation, impact is limited to specific projects, but unauthorized runner attachments could still occur.
🎯 Exploit Status
Exploitation requires a malicious user account but no special privileges. Public HackerOne report details the vulnerability.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 15.9.7, 15.10.6, or 15.11.2
Vendor Advisory: https://gitlab.com/gitlab-org/cves/-/blob/master/2023/CVE-2023-2478.json
Restart Required: Yes
Instructions:
1. Backup your GitLab instance. 2. Update to GitLab 15.9.7, 15.10.6, or 15.11.2 using your package manager. 3. Restart GitLab services. 4. Verify the update was successful.
🔧 Temporary Workarounds
Disable GraphQL endpoint
allTemporarily disable GraphQL API to prevent exploitation
Edit GitLab configuration to disable GraphQL (not recommended for production)
Restrict user registration
allPrevent new unauthorized user accounts from being created
Set signup_enabled to false in gitlab.rb configuration
🧯 If You Can't Patch
- Implement strict access controls to limit who can create user accounts
- Monitor GraphQL endpoint logs for unauthorized runner attachment attempts
🔍 How to Verify
Check if Vulnerable:
Check GitLab version via admin panel or command line. If version falls within affected ranges, system is vulnerable.
Check Version:
sudo gitlab-rake gitlab:env:info | grep Version
Verify Fix Applied:
Verify GitLab version is 15.9.7, 15.10.6, 15.11.2 or higher. Test GraphQL runner attachment with unauthorized user.
📡 Detection & Monitoring
Log Indicators:
- GraphQL queries for runner registration from unauthorized users
- Unexpected runner attachments in project logs
Network Indicators:
- GraphQL API requests to /api/graphql endpoint from unexpected sources
SIEM Query:
source="gitlab" AND ("graphql" AND "runner" AND "register")
🔗 References
- https://gitlab.com/gitlab-org/cves/-/blob/master/2023/CVE-2023-2478.json
- https://gitlab.com/gitlab-org/gitlab/-/issues/409470
- https://hackerone.com/reports/1969599
- https://gitlab.com/gitlab-org/cves/-/blob/master/2023/CVE-2023-2478.json
- https://gitlab.com/gitlab-org/gitlab/-/issues/409470
- https://hackerone.com/reports/1969599
- https://gitlab.com/gitlab-org/gitlab/-/issues/409470