CVE-2025-8014

7.5 HIGH

📋 TL;DR

This CVE describes a GraphQL query complexity bypass vulnerability in GitLab EE/CE that allows unauthenticated attackers to send specially crafted queries that bypass complexity limits, potentially causing resource exhaustion and denial of service. All GitLab instances running affected versions are vulnerable, and exploitation requires no authentication.

💻 Affected Systems

Products:
  • GitLab Community Edition
  • GitLab Enterprise Edition
Versions: All versions from 11.10 prior to 18.2.7, 18.3 prior to 18.3.3, and 18.4 prior to 18.4.1
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployment types (self-managed, cloud-native, etc.) with GraphQL endpoints enabled (default).

📦 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

Complete service disruption through resource exhaustion, making GitLab unavailable to all users until manual intervention restores service.

🟠

Likely Case

Performance degradation and intermittent service outages affecting user productivity and CI/CD pipelines.

🟢

If Mitigated

Minimal impact with proper rate limiting, monitoring, and network controls in place to detect and block malicious queries.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires crafting GraphQL queries that bypass complexity limits but doesn't require special tools or deep technical knowledge.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 18.2.7, 18.3.3, or 18.4.1

Vendor Advisory: https://gitlab.com/gitlab-org/gitlab/-/issues/556838

Restart Required: Yes

Instructions:

1. Backup your GitLab instance. 2. Update to GitLab 18.2.7, 18.3.3, or 18.4.1 depending on your current version track. 3. Restart GitLab services. 4. Verify the update was successful.

🔧 Temporary Workarounds

Rate Limit GraphQL Endpoints

linux

Implement rate limiting on /api/graphql endpoints to reduce impact of DoS attempts

# Configure in nginx or load balancer
limit_req_zone $binary_remote_addr zone=graphql:10m rate=10r/s;
location /api/graphql {
    limit_req zone=graphql burst=20 nodelay;
    proxy_pass http://gitlab;
}

Restrict GraphQL Access

linux

Block unauthenticated access to GraphQL endpoints or restrict to internal networks

# In nginx configuration
location /api/graphql {
    allow 10.0.0.0/8;  # Internal network
    allow 192.168.0.0/16;
    deny all;
    proxy_pass http://gitlab;
}

🧯 If You Can't Patch

  • Implement strict network ACLs to restrict GraphQL endpoint access to trusted IPs only
  • Deploy WAF rules to detect and block suspicious GraphQL query patterns

🔍 How to Verify

Check if Vulnerable:

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

Check Version:

sudo gitlab-rake gitlab:env:info | grep 'Version:'

Verify Fix Applied:

Verify version is 18.2.7, 18.3.3, or 18.4.1 or higher, and test GraphQL endpoint with complex queries

📡 Detection & Monitoring

Log Indicators:

  • High CPU/memory usage spikes
  • Multiple failed/complex GraphQL queries from single IPs
  • GraphQL query timeouts in logs

Network Indicators:

  • Unusual spike in requests to /api/graphql endpoint
  • Large payloads to GraphQL endpoint from external IPs

SIEM Query:

source="gitlab" AND ("graphql" OR "/api/graphql") AND (status=500 OR duration>5000)

🔗 References

📤 Share & Export