CVE-2026-61560
nicheUnauthenticated Arbitrary File Read in @zereight/mcp-gitlab Steals GitLab Tokens
@zereight/mcp-gitlab, a Model Context Protocol (MCP) server for GitLab, in all versions prior to 2.1.27 exposes every MCP tool without authentication when run in SSE transport mode (SSE=true), which is the default for Docker deployments. An unauthenticated attacker who can reach the server over the network can invoke the upload_markdown tool, whose unsanitized file_path parameter permits path traversal (CWE-22) to read arbitrary files from the server's local filesystem, which are then uploaded to an attacker-visible GitLab project. By reading /proc/self/environ, the attacker can steal the server's GITLAB_PERSONAL_ACCESS_TOKEN and achieve full takeover of the associated GitLab account. Anyone running the package below 2.1.27 in SSE mode on a network-reachable host is affected, with a critical CVSS 3.1 score of 9.8. No public proof-of-concept is known and the flaw is not on the CISA KEV catalog, so exploitation status is currently none known.
What to do: Upgrade to @zereight/mcp-gitlab version 2.1.27 or later immediately. If the SSE port was ever reachable by untrusted hosts (check Docker port bindings and firewall rules for 0.0.0.0 exposure), treat the GITLAB_PERSONAL_ACCESS_TOKEN as compromised: revoke and rotate it, review GitLab audit logs and personal access token usage for anomalous activity, and restrict the service to localhost or an authenticated reverse proxy going forward.
| zereight @zereight/mcp-gitlab | all versions prior to 2.1.27 (vulnerable when run with SSE transport mode, SSE=true, including Docker default configuration) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
`@zereight/mcp-gitlab` is a Model Context Protocol server for GitLab. Prior to version 2.1.27, the SSE transport mode (`SSE=true`) exposes all MCP tools without any authentication. The `upload_markdown` tool reads arbitrary files from the server's local filesystem via an unsanitized `file_path` parameter and uploads them to a GitLab project. Combined, any unauthenticated network-reachable attacker can read `/proc/self/environ` to steal the server's `GITLAB_PERSONAL_ACCESS_TOKEN` and achieve full GitLab account takeover. This is the default configuration for Docker deployments. Version 2.1.27 contains a patch.
- Weakness
- CWE-22
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.