Description
`@zereight/mcp-gitlab` is a Model Context Protocol server for GitLab. Starting in version 0.0.1 and prior to version 2.1.27, when the environment variable `ENABLE_DYNAMIC_API_URL=true` is set, the server reads the `X-GitLab-API-URL` HTTP request header and uses it as the base URL for all outbound GitLab API calls made within that request. The server validates that the value is a well-formed URL (`new URL(dynamicApiUrl)`) but applies no allowlist or hostname restriction. The server then attaches the victim's `Private-Token` to every outbound fetch that uses the redirected URL. Any caller who can reach the HTTP transport can set `X-GitLab-API-URL` to an attacker-controlled host. The next GitLab API call the server makes delivers the victim's token to that host. Version 2.1.27 contains a patch.
Published: 2026-09-15
Score: 9.6 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Server‑Side Request Forgery allowing token exfiltration
Action: Immediate Patch
AI Analysis

Impact

This vulnerability allows an attacker to supply an arbitrary URL via the X‑GitLab‑API‑URL header when the ENABLE_DYNAMIC_API_URL environment variable is true. The server validates only that the string is a syntactically correct URL, then forwards all outbound GitLab API requests to that address, automatically attaching the victim's Private‑Token. The attacker can capture the token and use it to perform privileged actions. The weakness is a Server‑Side Request Forgery defined as CWE‑918.

Affected Systems

Affected product: zereight/gitlab‑mcp. All releases from 0.0.1 up to, but not including, 2.1.27 are vulnerable. The patch was released in v2.1.27. Users running any earlier version that has ENABLE_DYNAMIC_API_URL enabled are at risk.

Risk and Exploitability

The CVSS score of 9.6 indicates a high‑severity problem. However, the EPSS score of less than 1% shows that exploitation is currently unobserved or rare. The vulnerability is not listed in the CISA KEV catalog. An attacker must be able to send HTTP requests to the server; once they do, the SSRF can be used to exfiltrate the authentication token or direct the server to internal resources. No user interaction beyond supplying a header is needed, suggesting moderate effort on the attacker side.

Generated by OpenCVE AI on September 18, 2026 at 13:47 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade zereight/gitlab‑mcp to version 2.1.27 or later to apply the SSRF fix.
  • Disable the ENABLE_DYNAMIC_API_URL environment variable or set it to false if the feature is not required.
  • If upgrading or disabling is not possible, restrict the server’s outbound network traffic so it cannot reach untrusted hosts, and monitor outgoing requests for the presence of GitLab Private‑Token headers.

Generated by OpenCVE AI on September 18, 2026 at 13:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-2h44-8472-frjj @zereight/mcp-gitlab Vulnerable to Server-Side Request Forgery
History

Thu, 17 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Zereight
Zereight gitlab-mcp
Vendors & Products Zereight
Zereight gitlab-mcp

Thu, 17 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 15 Sep 2026 21:15:00 +0000

Type Values Removed Values Added
Description `@zereight/mcp-gitlab` is a Model Context Protocol server for GitLab. Starting in version 0.0.1 and prior to version 2.1.27, when the environment variable `ENABLE_DYNAMIC_API_URL=true` is set, the server reads the `X-GitLab-API-URL` HTTP request header and uses it as the base URL for all outbound GitLab API calls made within that request. The server validates that the value is a well-formed URL (`new URL(dynamicApiUrl)`) but applies no allowlist or hostname restriction. The server then attaches the victim's `Private-Token` to every outbound fetch that uses the redirected URL. Any caller who can reach the HTTP transport can set `X-GitLab-API-URL` to an attacker-controlled host. The next GitLab API call the server makes delivers the victim's token to that host. Version 2.1.27 contains a patch.
Title @zereight/mcp-gitlab Vulnerable to Server-Side Request Forgery
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 9.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N'}


Subscriptions

Zereight Gitlab-mcp
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-17T16:50:15.672Z

Reserved: 2026-07-10T16:48:39.923Z

Link: CVE-2026-61559

cve-icon Vulnrichment

Updated: 2026-09-17T16:50:05.824Z

cve-icon NVD

Status : Deferred

Published: 2026-09-15T21:16:41.390

Modified: 2026-09-30T17:51:56.193

Link: CVE-2026-61559

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T14:00:10Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)