CVE-2026-7588 Overview
CVE-2026-7588 is a path traversal vulnerability [CWE-22] in the ggerve coding-standards-mcp project. The flaw resides in the get_style_guide and get_best_practices functions within server.py. Attackers manipulate the Language argument to traverse outside the intended directory and read unauthorized files.
The vulnerability is exploitable remotely without authentication or user interaction. A public exploit has been disclosed, increasing the likelihood of opportunistic abuse. The project follows a rolling release model, so explicit affected and fixed versions are not enumerated. The maintainer was notified through a public issue report but has not responded at the time of disclosure.
Critical Impact
Unauthenticated remote attackers can read arbitrary files accessible to the MCP server process by abusing the Language parameter in server.py.
Affected Products
- ggerve coding-standards-mcp (rolling release)
- server.py function get_style_guide
- server.py function get_best_practices
Discovery Timeline
- 2026-05-01 - CVE-2026-7588 published to the National Vulnerability Database (NVD)
- 2026-05-01 - Last updated in NVD database
Technical Details for CVE-2026-7588
Vulnerability Analysis
The coding-standards-mcp server is a Model Context Protocol (MCP) component that exposes coding-standard lookups to clients. The get_style_guide and get_best_practices functions in server.py accept a Language argument and use it to construct a file path. The functions do not validate or canonicalize the supplied value before joining it to a base directory.
An attacker supplies a value containing directory traversal sequences such as ../. The server resolves the path outside the intended standards directory and returns the contents of arbitrary files. Because the MCP transport is reachable over the network and requires no authentication, exploitation is straightforward.
The disclosed impact is limited to confidentiality of files readable by the server process. Integrity and availability are not directly affected by this flaw.
Root Cause
The root cause is improper limitation of a pathname to a restricted directory [CWE-22]. The Language parameter flows directly into a filesystem read operation without normalization, allowlist enforcement, or rejection of traversal sequences.
Attack Vector
The attack vector is network-based. An attacker sends a crafted MCP request that invokes get_style_guide or get_best_practices with a Language argument such as ../../../../etc/passwd or a similar relative path. The server reads and returns the targeted file. No prior authentication, privilege, or user interaction is required.
The vulnerability mechanism is described in the GitHub Issue Discussion and the VulDB Vulnerability Reference #360541. No verified exploit code is reproduced here.
Detection Methods for CVE-2026-7588
Indicators of Compromise
- MCP requests to get_style_guide or get_best_practices containing ../, ..\, URL-encoded %2e%2e%2f, or absolute paths in the Language argument.
- Unexpected file read operations by the coding-standards-mcp process targeting paths outside the configured standards directory.
- Outbound responses from the MCP server containing contents of system files such as /etc/passwd, SSH keys, or application configuration files.
Detection Strategies
- Log all MCP tool invocations with full arguments and inspect the Language parameter for traversal patterns.
- Apply static and runtime checks that flag filesystem reads by the server process outside its configured base directory.
- Correlate MCP request logs with file access telemetry to identify mismatches between requested language identifiers and accessed file paths.
Monitoring Recommendations
- Forward MCP server logs and host file-access events to a centralized analytics platform for retention and search.
- Alert on any get_style_guide or get_best_practices invocation where the Language argument fails an alphanumeric allowlist.
- Monitor process file descriptors for reads of sensitive paths by the MCP server user account.
How to Mitigate CVE-2026-7588
Immediate Actions Required
- Restrict network exposure of the coding-standards-mcp server to trusted clients only, using network ACLs or a reverse proxy with authentication.
- Run the MCP server under a low-privilege account with filesystem access limited to the standards directory.
- Apply input validation at a proxy layer that rejects Language values containing path separators, dots, or non-alphanumeric characters.
Patch Information
The project uses a rolling release model and no fixed version has been published. The maintainer has not responded to the public issue report referenced in the disclosure. Track the GitHub Repository for Coding Standards and the GitHub Issue Discussion for remediation updates.
Workarounds
- Replace the vulnerable functions with logic that maps Language through a strict allowlist of supported identifiers before any filesystem operation.
- Canonicalize the resolved path with os.path.realpath and verify it remains within the configured base directory.
- Deploy the server inside a container or chroot with no access to sensitive host paths.
# Configuration example: enforce allowlist and confine the MCP service
# 1. Run the MCP server as a dedicated user with restricted filesystem access
useradd -r -s /usr/sbin/nologin mcpsvc
chown -R mcpsvc:mcpsvc /opt/coding-standards-mcp/standards
chmod -R 750 /opt/coding-standards-mcp/standards
# 2. Systemd hardening to confine reads to the standards directory
# /etc/systemd/system/coding-standards-mcp.service
# [Service]
# User=mcpsvc
# ProtectSystem=strict
# ReadOnlyPaths=/opt/coding-standards-mcp/standards
# PrivateTmp=true
# NoNewPrivileges=true
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


