CVE-2020-13283

7.3 HIGH

📋 TL;DR

This cross-site scripting (XSS) vulnerability in GitLab allows attackers to inject malicious scripts into milestone titles, which then execute in victims' browsers when viewing the issues list. It affects all GitLab instances running vulnerable versions, potentially compromising user sessions and data.

💻 Affected Systems

Products:
  • GitLab Community Edition
  • GitLab Enterprise Edition
Versions: All versions before 13.0.12, 13.1.6, and 13.2.3
Operating Systems: All supported platforms (Linux, Windows, Docker, Kubernetes)
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all GitLab deployments regardless of configuration. The vulnerability is in the web interface component.

📦 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 could steal session cookies, perform actions as authenticated users, redirect to malicious sites, or install malware on user systems.

🟠

Likely Case

Session hijacking leading to unauthorized access to repositories, issues, and sensitive project data.

🟢

If Mitigated

Limited impact with proper content security policies and user awareness, though XSS could still bypass some controls.

🌐 Internet-Facing: HIGH - GitLab instances accessible from the internet are directly exposed to XSS attacks from any visitor.
🏢 Internal Only: MEDIUM - Internal attackers or compromised internal systems could exploit this, but attack surface is smaller.

🎯 Exploit Status

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

Exploitation requires creating or modifying milestones with malicious titles, which typically requires at least reporter-level permissions. Public proof-of-concept exists in HackerOne report.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: GitLab 13.0.12, 13.1.6, or 13.2.3 and later

Vendor Advisory: https://gitlab.com/gitlab-org/cves/-/blob/master/2020/CVE-2020-13283.json

Restart Required: Yes

Instructions:

1. Backup your GitLab instance. 2. Update to GitLab 13.0.12, 13.1.6, or 13.2.3 or newer. 3. For Omnibus installations: 'sudo gitlab-ctl reconfigure'. 4. For source installations: follow GitLab upgrade documentation. 5. Verify the update completed successfully.

🔧 Temporary Workarounds

Input Sanitization Enhancement

all

Implement additional input validation and output encoding for milestone titles

Not applicable - requires code changes

Content Security Policy

linux

Implement strict CSP headers to mitigate XSS impact

Add to nginx config: add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';" always;

🧯 If You Can't Patch

  • Restrict milestone creation/modification permissions to trusted users only
  • Implement web application firewall (WAF) rules to detect and block XSS payloads in milestone titles

🔍 How to Verify

Check if Vulnerable:

Check GitLab version: if running version before 13.0.12, 13.1.6, or 13.2.3, you are vulnerable.

Check Version:

For Omnibus: 'sudo gitlab-rake gitlab:env:info | grep Version'. For source: check VERSION file in installation directory.

Verify Fix Applied:

After patching, verify version is 13.0.12, 13.1.6, 13.2.3 or newer and test milestone title input sanitization.

📡 Detection & Monitoring

Log Indicators:

  • Unusual milestone creation/modification patterns
  • Suspicious characters in milestone titles (script tags, javascript: URIs)
  • Multiple failed XSS attempts in web logs

Network Indicators:

  • HTTP requests with XSS payloads in milestone parameters
  • Unexpected external resource loading from milestone pages

SIEM Query:

source="gitlab.logs" AND ("milestone" AND ("<script>" OR "javascript:" OR "onerror=" OR "onload="))

🔗 References

📤 Share & Export