CVE-2025-9825

5.0 MEDIUM

📋 TL;DR

This vulnerability allows authenticated GitLab users without project membership to view sensitive manual CI/CD variables via GraphQL API queries. It affects GitLab CE/EE installations running vulnerable versions. Attackers could access credentials, tokens, or other secrets stored in these variables.

💻 Affected Systems

Products:
  • GitLab Community Edition
  • GitLab Enterprise Edition
Versions: 13.7 to 18.2.8, 18.3 before 18.3.4, 18.4 before 18.4.2
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments with GraphQL API enabled (default). Requires authenticated user access.

📦 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

Attackers obtain production credentials, API tokens, or deployment secrets leading to data breaches, unauthorized deployments, or lateral movement within infrastructure.

🟠

Likely Case

Internal users or compromised accounts access sensitive variables from projects they shouldn't have access to, potentially exposing development secrets.

🟢

If Mitigated

With proper access controls and monitoring, impact is limited to unauthorized viewing of some variables without ability to modify or use them.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires valid GitLab credentials and knowledge of GraphQL queries. No public exploit code available yet.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 18.2.9, 18.3.4, 18.4.2 or later

Vendor Advisory: https://about.gitlab.com/releases/2025/10/08/patch-release-gitlab-18-4-2-released/

Restart Required: Yes

Instructions:

1. Backup your GitLab instance. 2. Update to GitLab 18.2.9, 18.3.4, or 18.4.2+. 3. Restart GitLab services. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Restrict GraphQL API Access

linux

Limit GraphQL API access to trusted users only via firewall rules or GitLab configuration.

# Configure firewall to restrict GraphQL endpoint access
iptables -A INPUT -p tcp --dport 443 -s trusted_network -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP

Disable GraphQL API

linux

Temporarily disable GraphQL API if not required for operations.

# Edit gitlab.rb configuration
gitlab_rails['gitlab_api_enabled'] = false
# Reconfigure GitLab
gitlab-ctl reconfigure

🧯 If You Can't Patch

  • Implement strict access controls and monitor for unusual GraphQL queries
  • Rotate all CI/CD variables and secrets stored in vulnerable GitLab instances

🔍 How to Verify

Check if Vulnerable:

Check GitLab version via admin interface or command: sudo gitlab-rake gitlab:env:info | grep 'GitLab version'

Check Version:

sudo gitlab-rake gitlab:env:info | grep 'GitLab version'

Verify Fix Applied:

Verify version is 18.2.9+, 18.3.4+, or 18.4.2+ and test that non-member users cannot access manual CI/CD variables via GraphQL.

📡 Detection & Monitoring

Log Indicators:

  • Unusual GraphQL queries for CI/CD variables from non-project members
  • Multiple failed authorization attempts followed by successful variable queries

Network Indicators:

  • GraphQL API requests to /api/graphql endpoint from unauthorized sources
  • Unusual patterns of variable-related queries

SIEM Query:

source="gitlab" AND (query="variables" OR query="ciCd") AND user_role!="project_member"

🔗 References

📤 Share & Export