Description
`@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.
Published: 2026-09-15
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Account Takeover
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises when the Model Context Protocol server for GitLab processes the upload_markdown command in Server‑Sent Events mode without authenticating the caller. An attacker can provide any file_path value, and the command will read the requested file from the host’s filesystem and upload its contents to a GitLab project. Because the path is unsanitized, the attacker can read sensitive files such as /proc/self/environ, which contains the GITLAB_PERSONAL_ACCESS_TOKEN. With that token, the attacker can then access the GitLab instance as the user who owns the token and perform any actions the token permits. This leads to a full GitLab account takeover. The flaw is assigned CWE‑22, which denotes an arbitrary file read vulnerability. The high CVSS score of 9.8 reflects the total impact to confidentiality and integrity, as well as the ease of exploitation.

Affected Systems

Affected systems are installations of @zereight/mcp‑gitlab older than version 2.1.27 when SSE transport mode is enabled. The default Docker configuration sets SSE=true and leaves the upload_markdown tool available without authentication, so any user who can reach the server over the network can trigger the flaw. No additional privileges or local code execution are required beyond being able to connect to the service.

Risk and Exploitability

The EPSS score is currently below 1 percent, suggesting that the attacker impact is not widely observed at this time, and the vulnerability is not listed in CISA’s KEV catalog. Nevertheless, the CVSS score of 9.8 indicates that exploitation would provide complete control over the GitLab account. The consumption path is a simple HTTP request to the SSE endpoint. Because the service is unauthenticated, the attack can be carried out remotely by any network‑reachable host, making the threat vector local network or the Internet, depending on exposure. No additional steps or specialized tooling are required to exploit the flaw.

Generated by OpenCVE AI on September 16, 2026 at 20:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the patch available in version 2.1.27 or later to fix the path traversal in the upload_markdown tool.
  • Disable SSE transport mode (SSE=false) or require authentication for SSE so the upload_markdown endpoint is protected.
  • Restrict the files that can be uploaded or processed by the service, ensuring that sensitive system paths such as /proc/self/environ cannot be accessed via file_path.

Generated by OpenCVE AI on September 16, 2026 at 20:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cv3r-c5h8-f4g5 @zereight/mcp-gitlab: Unauthenticated arbitrary file read via `upload_markdown` enables PAT exfiltration and full account takeover
History

Wed, 16 Sep 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


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

Type Values Removed Values Added
Description `@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.
Title @zereight/mcp-gitlab's unauthenticated arbitrary file read via `upload_markdown` enables PAT exfiltration and full account takeover
Weaknesses CWE-22
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-16T13:59:32.899Z

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

Link: CVE-2026-61560

cve-icon Vulnrichment

Updated: 2026-09-16T13:59:05.928Z

cve-icon NVD

Status : Received

Published: 2026-09-15T22:16:58.040

Modified: 2026-09-16T14:17:06.550

Link: CVE-2026-61560

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-16T20:45:05Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')