# CVE-2026-61560: @zereight/mcp-gitlab unauthenticated arbitrary file read via upload_markdown

Source: https://junglewise.ai/threats/cve-2026-61560-zereight-mcp-gitlab-unauthenticated-arbitrary-file-read-via  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-15. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-61560 · Severity: critical · CVSS 9.8 · Published 2026-09-15

The @zereight/mcp-gitlab package is a Model Context Protocol integration that allows AI assistants to interact with GitLab. The default Docker deployment exposes an unauthenticated Server-Sent Events endpoint combined with an arbitrary file read vulnerability in the upload_markdown tool. An attacker with network access can read sensitive files from the server (including environment variables containing GitLab access tokens) and achieve complete account takeover of the GitLab instance with no credentials required.

Technologies: [@zereight/mcp-gitlab (npm)](https://junglewise.ai/threats/technologies/zereight-mcp-gitlab), [Zereight Mcp-Gitlab](https://junglewise.ai/threats/technologies/mcp-gitlab). Vendors: [npm](https://junglewise.ai/threats/vendors/npm), [Zereight](https://junglewise.ai/threats/vendors/zereight).

## Quick answers

**Is CVE-2026-61560 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-61560 being exploited in the wild.

**How severe is CVE-2026-61560?** Critical severity, with a CVSS score of 9.8, published 15 September 2026.

**Which products and versions are affected?** @zereight/mcp-gitlab (npm) < 2.1.27, SEMVER:introduced=0,fixed=2.1.27; Zereight Mcp-Gitlab < 2.1.27.

**Is there a fix for CVE-2026-61560?** Yes. @zereight/mcp-gitlab (npm): upgrade to 2.1.27 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-61560 attacked?** It is attacked over the network.

**Am I affected by CVE-2026-61560?** Check whether you run @zereight/mcp-gitlab (npm) or Zereight Mcp-Gitlab at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- @zereight/mcp-gitlab (npm): upgrade to 2.1.27 or later

  ```sh
  npm install @zereight/mcp-gitlab@2.1.27
  ```


## Technical details

This vulnerability chains two flaws in @zereight/mcp-gitlab: (1) The SSE transport mode (SSE=true, default in Docker) exposes /sse and /messages endpoints with zero authentication, allowing any network-reachable client to invoke all ~100+ MCP tools using the server's configured GitLab Personal Access Token. (2) The upload_markdown tool calls fs.readFileSync() on unsanitized user-supplied file paths with no validation, enabling arbitrary file read. The tool reads files from the local filesystem and uploads them to a GitLab project. Combining these flaws, an unauthenticated attacker can read /proc/self/environ to steal the GITLAB_PERSONAL_ACCESS_TOKEN environment variable and gain full API access to GitLab. The Docker deployment amplifies the risk by running the process as root with the port bound to 0.0.0.0 by default. Patch 2.1.27 and later add path validation and authentication to the SSE transport.

## Affected products

- zereight @zereight/mcp-gitlab < 2.1.27

## Identifiers

- CVE-2026-61560
- GHSA-cv3r-c5h8-f4g5

## Timeline

- 2026-06-22: disclosed: Vulnerability initially reported to GitHub
- 2026-09-16: advisory: GitHub Advisory published
- 2026-09-16: patched: Version 2.1.27 released with fix

## References

- [https://api.github.com/users/gil-maman-p](https://api.github.com/users/gil-maman-p)
- [https://github.com/gil-maman-p](https://github.com/gil-maman-p)
- [https://api.github.com/users/gil-maman-p/gists%7B/gist_id%7D](https://api.github.com/users/gil-maman-p/gists%7B/gist_id%7D)
- [https://api.github.com/users/gil-maman-p/repos](https://api.github.com/users/gil-maman-p/repos)
- [https://avatars.githubusercontent.com/u/226511218?v=4](https://avatars.githubusercontent.com/u/226511218?v=4)
- [https://api.github.com/users/gil-maman-p/events%7B/privacy%7D](https://api.github.com/users/gil-maman-p/events%7B/privacy%7D)

## Related threats

- [@zereight/mcp-gitlab DNS rebinding in Streamable HTTP transport](https://junglewise.ai/threats/cve-2026-61568-zereight-mcp-gitlab-dns-rebinding-in-streamable-http-transport)
- [zereight mcp-gitlab server-side request forgery in X-GitLab-API-URL](https://junglewise.ai/threats/cve-2026-61559-zereight-mcp-gitlab-server-side-request-forgery-in-dynamic-api)
- [@zereight/mcp-gitlab multiple safety-control bypasses](https://junglewise.ai/threats/zereight-mcp-gitlab-multiple-safety-control-bypasses-fcdfc95d)
- [zereight mcp-gitlab path traversal in job_id and pipeline_id](https://junglewise.ai/threats/cve-2026-61462-zereight-mcp-gitlab-path-traversal-in-job-id-and-pipeline-id)
