CVE-2025-13761

8.0 HIGH

📋 TL;DR

This is a cross-site scripting (XSS) vulnerability in GitLab that allows an unauthenticated attacker to execute arbitrary JavaScript code in the context of an authenticated user's browser by tricking them into visiting a malicious webpage. All GitLab CE/EE instances running affected versions are vulnerable, potentially compromising user sessions and data.

💻 Affected Systems

Products:
  • GitLab Community Edition
  • GitLab Enterprise Edition
Versions: 18.6.0 to 18.6.2, 18.7.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments (self-managed, cloud, containers) running affected versions are vulnerable regardless of configuration.

📦 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 →

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete account takeover, data theft, privilege escalation, and lateral movement within the GitLab instance through authenticated user sessions.

🟠

Likely Case

Session hijacking, data exfiltration, and unauthorized actions performed as the victim user within GitLab.

🟢

If Mitigated

Limited impact with proper CSP headers, session timeouts, and user awareness training, though code execution in browser context still occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires social engineering (convincing user to visit malicious page) but no authentication to GitLab. The CWE-79 classification indicates classic XSS exploitation patterns.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 18.6.3 or 18.7.1

Vendor Advisory: https://about.gitlab.com/releases/2026/01/07/patch-release-gitlab-18-7-1-released/

Restart Required: Yes

Instructions:

1. Backup your GitLab instance. 2. Update to GitLab 18.6.3 (if on 18.6.x) or 18.7.1 (if on 18.7.x). 3. Restart GitLab services. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Content Security Policy (CSP) Enhancement

all

Implement strict CSP headers to mitigate XSS impact by restricting script execution sources.

# Add to GitLab configuration (gitlab.rb):
gitlab_rails['content_security_policy'] = {
  'default-src' => "'self'",
  'script-src' => "'self' 'unsafe-inline' 'unsafe-eval'",
  'style-src' => "'self' 'unsafe-inline'",
  'img-src' => "'self' data: https:",
  'font-src' => "'self'",
  'connect-src' => "'self'",
  'frame-src' => "'none'",
  'object-src' => "'none'"
}

🧯 If You Can't Patch

  • Isolate GitLab instance from internet access and restrict to internal network only.
  • Implement web application firewall (WAF) rules to block XSS payloads and monitor for exploitation attempts.

🔍 How to Verify

Check if Vulnerable:

Check GitLab version via Admin Area or command line. If version is between 18.6.0-18.6.2 or exactly 18.7.0, the instance is vulnerable.

Check Version:

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

Verify Fix Applied:

After patching, confirm version is 18.6.3 or 18.7.1 and test that the specific XSS vector from references is no longer exploitable.

📡 Detection & Monitoring

Log Indicators:

  • Unusual JavaScript execution errors in browser console logs
  • Suspicious referrer headers pointing to external domains in access logs
  • Multiple failed authentication attempts followed by successful login from same IP

Network Indicators:

  • Outbound connections to unknown domains from GitLab server
  • Unusual traffic patterns to GitLab instance from suspicious sources

SIEM Query:

source="gitlab_access.log" AND (uri="*<script>*" OR referer="*malicious-domain*" OR status=200 AND user_agent="*Mozilla*" AND bytes>1000000)

🔗 References

📤 Share & Export