CVE-2024-7610

4.3 MEDIUM

📋 TL;DR

This vulnerability allows attackers to cause a Denial of Service (DoS) condition in GitLab by exploiting catastrophic backtracking when parsing Elasticsearch results. It affects GitLab Community Edition and Enterprise Edition installations running vulnerable versions. The attack can cause service disruption by consuming excessive CPU resources.

💻 Affected Systems

Products:
  • GitLab Community Edition
  • GitLab Enterprise Edition
Versions: All versions starting with 15.9 before 17.0.6, 17.1 prior to 17.1.4, and 17.2 prior to 17.2.2
Operating Systems: All supported operating systems
Default Config Vulnerable: ✅ No
Notes: Requires Elasticsearch integration to be enabled and accessible. GitLab instances without Elasticsearch are not affected.

📦 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 unavailability due to CPU exhaustion, preventing legitimate users from accessing GitLab services.

🟠

Likely Case

Performance degradation and intermittent service disruptions affecting user productivity.

🟢

If Mitigated

Minimal impact with proper rate limiting and monitoring in place to detect and block malicious requests.

🌐 Internet-Facing: MEDIUM - Attackers can exploit this remotely if Elasticsearch integration is enabled and accessible.
🏢 Internal Only: MEDIUM - Internal attackers or compromised accounts could still trigger the DoS condition.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires access to trigger Elasticsearch queries, typically requiring some level of authentication or API access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 17.0.6, 17.1.4, or 17.2.2

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

Restart Required: Yes

Instructions:

1. Backup your GitLab instance. 2. Update to GitLab 17.0.6, 17.1.4, or 17.2.2 depending on your current version. 3. Restart GitLab services. 4. Verify the update was successful.

🔧 Temporary Workarounds

Disable Elasticsearch Integration

linux

Temporarily disable Elasticsearch to prevent exploitation until patching is possible.

gitlab-rails runner "ApplicationSetting.current.update!(elasticsearch_search: false, elasticsearch_indexing: false)"

Implement Rate Limiting

all

Configure rate limiting on Elasticsearch API endpoints to reduce impact.

Configure nginx or GitLab rate limiting for /api/v4/search endpoints

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can access Elasticsearch endpoints
  • Monitor CPU usage and Elasticsearch query patterns for abnormal activity

🔍 How to Verify

Check if Vulnerable:

Check GitLab version and verify Elasticsearch is enabled: gitlab-rake gitlab:env:info | grep -E 'Version|Elasticsearch'

Check Version:

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

Verify Fix Applied:

Confirm version is 17.0.6, 17.1.4, or 17.2.2 or higher: cat /opt/gitlab/version-manifest.txt | grep gitlab

📡 Detection & Monitoring

Log Indicators:

  • High CPU usage spikes
  • Slow Elasticsearch query responses
  • Timeout errors in search functionality

Network Indicators:

  • Unusual patterns of search API requests
  • High volume of requests to /api/v4/search endpoints

SIEM Query:

source="gitlab.log" AND ("CPU" OR "timeout" OR "backtracking") AND "search"

🔗 References

📤 Share & Export