CVE-2021-22175 — GitLab Server-Side Request Forgery (SSRF) Vulnerability

CVE-2021-22175

GitLab CE/EE Webhooks — SSRF via Webhook Requests to Internal Network Enables Unauthenticated Attacker to Probe Internal Services; Added to KEV February 2026

What is GitLab Webhooks?

GitLab webhooks allow projects to send HTTP POST notifications to external URLs when events occur — such as code pushes, merge requests, issue updates, or pipeline completions. These webhooks are configured with a target URL and GitLab makes outbound HTTP requests to that URL when events trigger. When GitLab's webhook functionality is configured to allow requests to internal network addresses, the webhook system becomes an SSRF vector: an attacker who can configure (or whose request triggers) a webhook to an internal URL can cause the GitLab server to make requests to internal services — reaching cloud metadata APIs, internal management interfaces, or other services not directly accessible from the internet. GitLab's admin configuration determines whether internal network webhook requests are permitted.

Overview

CVE-2021-22175 is a Server-Side Request Forgery vulnerability (CWE-918) in GitLab Community and Enterprise Editions. When the GitLab admin setting "Allow requests to the local network from webhooks and integrations" is enabled, external unauthenticated users can perform SSRF via the webhook functionality, causing the GitLab server to make HTTP requests to internal network addresses. The Scope: Changed (S:C) with high Confidentiality (C:H) reflects that SSRF can reach internal services across a security boundary, potentially including cloud instance metadata services that leak IAM credentials. Patched in GitLab 13.7.9, 13.8.6, 13.9.4 (March 2021). CISA added it to KEV in February 2026 — five years after the patch.

Affected Versions

Product Vulnerable Fixed
GitLab CE/EE 12.1 through 13.7.8 Yes 13.7.9
GitLab CE/EE 13.8.0 through 13.8.5 Yes 13.8.6
GitLab CE/EE 13.9.0 through 13.9.3 Yes 13.9.4

Technical Details

  • Root cause: SSRF (CWE-918) via webhook URL handling — when GitLab admin allows webhook requests to internal network addresses, the webhook delivery mechanism does not adequately restrict what URLs can be targeted; an external attacker who can trigger a webhook (through creating a project, submitting a merge request, or other event-triggering actions) can target the webhook at internal network addresses, causing the GitLab server to make outbound requests on the attacker's behalf
  • Admin configuration dependency: The vulnerability is triggered when "Allow requests to the local network from webhooks and integrations" is enabled in GitLab admin settings — a configuration some organizations enable for internal integrations; however, even when this setting is off, alternate exploitation paths may exist
  • AC:H complexity: The High Complexity rating reflects that exploitation requires specific conditions — appropriate event triggering, webhook configuration access, or alternate bypass paths — rather than a simple unauthenticated request
  • Scope: Changed / C:H: SSRF via GitLab webhooks can reach cloud metadata services (169.254.169.254), Kubernetes API servers, internal database endpoints, or other services behind the GitLab server's network position; accessing cloud metadata endpoints without IMDSv2 yields IAM credentials (C:H)
  • Five-year KEV delay: CISA's February 2026 addition comes five years after the March 2021 patch — reflecting the persistent presence of unpatched self-hosted GitLab instances in enterprise and government environments

Discovery

Patched in GitLab 13.9.4 security release (March 4, 2021). CISA's February 2026 KEV addition (five years post-patch) reflects active exploitation of GitLab instances that had not been updated through five years of security releases — a common scenario with self-hosted GitLab deployments where update cycles are infrequent.

Exploitation Context

GitLab SSRF vulnerabilities are used to probe internal network infrastructure and steal cloud credentials. In cloud-hosted GitLab deployments, CVE-2021-22175 enables: (1) reading the cloud instance metadata service to steal IAM role credentials, (2) probing internal microservices and APIs not otherwise accessible from the internet, and (3) mapping internal network topology via webhook response variations. The five-year gap between patch and KEV addition demonstrates that even 2021-era vulnerabilities in widely deployed software remain active exploitation targets when the installed base includes many unpatched legacy instances.

Remediation

  1. Upgrade GitLab to 13.7.9, 13.8.6, 13.9.4, or any later version — patches the webhook SSRF
  2. Review and disable "Allow requests to the local network from webhooks and integrations" in GitLab admin settings unless specifically required: Admin area → Settings → Network → Outbound requests → uncheck the internal network option
  3. Configure GitLab's outbound request allowlist to restrict webhook destinations to only known, approved external services
  4. Enable IMDSv2 on cloud instances hosting GitLab — this prevents SSRF from accessing the metadata endpoint to steal IAM credentials
  5. Apply network egress controls from the GitLab server to block outbound connections to private IP ranges
  6. Maintain a regular GitLab update schedule — GitLab releases frequent security patches; self-hosted instances should be updated at least with every minor security release

Key Details

PropertyValue
CVE ID CVE-2021-22175
Vendor / Product GitLab — GitLab
NVD Published2021-06-11
NVD Last Modified2026-02-20
CVSS 3.1 Score6.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N
SeverityMEDIUM
CWE CWE-918 find similar ↗
CISA KEV Added2026-02-18
CISA KEV Deadline2026-03-11
Known Ransomware Use No

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Required Action

CISA BOD 22-01 Deadline: 2026-03-11. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Timeline

DateEvent
2021-03-04GitLab security releases 13.9.4, 13.8.6, 13.7.9 patching CVE-2021-22175 SSRF via internal network webhooks
2021-06-11CVE published
2026-02-18Added to CISA Known Exploited Vulnerabilities catalog — five years after patch
2026-03-11CISA BOD 22-01 remediation deadline

References

ResourceType
GitLab CVE Record — CVE-2021-22175 Vendor Advisory
GitLab Security Release 13.9.4 Vendor Advisory
NVD — CVE-2021-22175 Vulnerability Database
CISA KEV Catalog Entry US Government