CVE-2026-61559: zereight gitlab-mcp · Server-Side Request Forgery (SSRF)
Affects zereight gitlab-mcpSource CVE Database V5
Not known to be exploited · CVSS 9.6 Critical : upgrade to 2.1.27 as a priority.
Data as of 30 Oct 2026, 20:25 UTC
- EPSS
- 0.4% chance of exploitation in 30 days – higher than 36% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 2.1.27
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:NExploitation evidence
Disclosed: evidence found.
CVE published 15 Sep 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade zereight gitlab-mcp to 2.1.27.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| zereightgitlab-mcp | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Version 2.1.27 of `@zereight/mcp-gitlab` contains a patch that fixes this vulnerability. Users should upgrade to version 2.1.27 or later to remediate the issue. Until upgraded, avoid setting the environment variable ENABLE_DYNAMIC_API_URL=true or restrict access to the vulnerable server to trusted users only. Patch status is confirmed by the vendor advisory indicating the fix in version 2.1.27.
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.
References
- github.com/zereight/gitlab-mcp/security/advisories/GHSA-2h44-8472-frjj (opens in a new tab)
- github.com/zereight/gitlab-mcp/pull/625 (opens in a new tab)
- github.com/zereight/gitlab-mcp/commit/6ffb4cc70706fd05b1ab80901676bc2998b6db6d (opens in a new tab)
- github.com/zereight/gitlab-mcp/releases/tag/v2.1.27 (opens in a new tab)