Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain access to k6 MCP server session
-
DeliveryInvoke convert_playwright_script with bare/~ path
-
ExploitPath resolved without directory restriction
-
ExecutionServer reads arbitrary file as service user
-
ImpactSecret contents returned in prompt response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the ability to invoke the convert_playwright_script prompt on the k6 MCP server and supplying the playwright_script argument as a bare path (not the documented '@'-prefixed form) or a '~'-prefixed path, which reaches an undocumented code path that performs no working-directory restriction; the '~' form is expanded to the home directory, making files like SSH private keys directly addressable. The working-directory restriction on the '@' form is also bypassable by placing a symbolic link inside the working directory that points outside it, because the path is not canonicalized before the check. Limiting factors: the attacker must already be able to invoke prompts on the server (PR:L - not anonymous), disclosure is bounded to files readable by the OS user running the server, and installations on v0.3.0/v0.4.0 have no restriction at all while later affected versions are exploitable only via the bare/'~'/symlink bypass. |
| Impact | This is a moderate-severity information-disclosure flaw whose signals are internally consistent but point to limited mass-exploitation risk. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, base 6.5) indicates a low-privilege actor who can invoke the MCP prompt can reliably read any file the server user can read, with high confidentiality impact and no integrity or availability impact - matching the CWE-22 path-traversal description. No EPSS score, CISA KEV listing, POC, or SSVC decision data was supplied, so there is no evidence of active exploitation or weaponization; status is best characterized as no public exploit identified at time of analysis. One nuance worth verifying: the CVSS marks AV:N, but MCP servers are frequently invoked over local/stdio transports, so real-world attack surface depends heavily on whether the server is exposed beyond localhost - verify the deployment transport with the operator. The PR:L is appropriate because exploitation requires the ability to invoke the prompt (i.e., a client already connected/authorized to the MCP server), which meaningfully narrows the realistic attacker population to those who already have some access to the host or MCP session. Net: a real but not urgent priority - high impact on secrets (SSH keys, credentials) if reachable, offset by the prerequisite of MCP access and the absence of any exploitation telemetry. |
| Exploit ScenarioDerived | A user or tool with access to the k6 MCP server session invokes the convert_playwright_script prompt supplying a bare (non-'@') path such as ~/.ssh/id_rsa or an absolute path outside the working directory; the undocumented resolution path applies no directory restriction and returns the file contents in the prompt response. Alternatively, the attacker plants or abuses a symlink inside the working directory pointing to a sensitive file, since the path is not canonicalized before the restriction check. No public exploit code is identified, but the technique is trivial and requires no special tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 05, 2026
Path traversal in the k6 MCP server (packaged by Grafana, CPE cpe:2.3:a:grafana:mcp_k6) lets a caller who can already invoke prompts on the server read arbitrary files as the OS user running the server. The convert_playwright_script prompt is documented to accept a script path in '@'-prefixed form, which is confined to the server's working directory, but bare paths and '~'-prefixed paths are handled by a separate undocumented code path that applies no restriction and expands '~' to the user's home directory, making files such as SSH private keys directly addressable; the '@' restriction can also be bypassed with a symlink inside the working directory pointing outside it. All releases from v0.3.0 onward are affected, and v0.3.0/v0.4.0 enforce no restriction on either path form; there is no confirmed active exploitation (not in CISA KEV) and no public exploit identified at time of analysis, and the impact is bounded by the requirement for prompt-invocation privileges (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N).
RemediationAI
Upgrade the k6 MCP server to a fixed release as listed in the Grafana security advisory for CVE-2026-89039 (https://grafana.com/security/security-advisories/cve-2026-89039); the exact fixed version is not stated in the available data, so the advisory should be consulted before deployment - patch available per vendor advisory. Until the upgrade is applied, run the MCP server as a dedicated unprivileged OS account whose home directory contains no credentials and whose filesystem view excludes sensitive data (trade-off: hosts with keys in the server user's home, such as ~/.ssh, remain exposed to the '~' form, so keys must be moved or the account isolated via container or chroot-style confinement). Restrict who can invoke prompts on the server to trusted clients and users, since exploitation requires prompt-invocation privileges (PR:L) and anonymous or broadly shared MCP endpoints materially increase exposure (trade-off: limits legitimate integrations). If the convert_playwright_script prompt is not needed, disable or remove it, or intercept the playwright_script argument with a proxy/wrapper that rejects bare, '~'-prefixed, and symlink-resolving paths, requiring the '@' form only (trade-off: breaks or constrains legitimate Playwright-conversion workflows that rely on other path forms). Do not store SSH private keys or other credentials in the server user's home directory, and audit the working directory for symlinks pointing outside it; note that no vendor workaround alone restores the '@'-form symlink defense, which depends on canonicalization in patched code.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is rooted in CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal) within the k6 MCP server's prompt-handling code. MCP servers expose 'prompts' that an MCP client can invoke with arguments; the convert_playwright_script prompt takes a playwright_script argument intended to be a path to a Playwright script to be transformed into k6 code. The implementation contains two divergent resolution paths: the documented '@'-prefixed form is checked against the server's current working directory, while a bare path falls through to an undocumented branch that performs no such check, and a leading '~' is expanded to the invoking user's home directory before the file is opened. Because the path is not canonicalized (for example via realpath) before the working-directory restriction is applied, the restriction is also defeated by a symlink placed inside the working directory that resolves to a target outside it. The result is a classic confused-path-disclosure: the file contents are returned in the prompt response rather than executed, so impact is confidentially oriented (C:H) with no integrity or availability effect, and exploitation is gated on the caller's ability to invoke prompts on the server (PR:L per the assessed vector). The affected package is identified by the wildcarded CPE cpe:2.3:a:grafana:mcp_k6:*:*:*:*:*:*:*:*, with v0.3.0 and v0.4.0 applying no restriction at all and later releases affected via the bare-path, '~', or symlink bypass.
Know when Grafana gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Caller must be able to invoke the prompt (PR:L) but needs no further conditions (AC:L, UI:N); arbitrary file read yields C:H with no integrity or availability impact; AV:N retained per MCP transport exposure.
Primary rating from Vendor (GRAFANA).
CVSS VectorVendor: GRAFANA
DescriptionCVE.org
The convert_playwright_script prompt in the k6 MCP server accepts a file path as its playwright_script argument. Paths given in the documented '@'-prefixed form are restricted to the server's current working directory, but a bare path is resolved by a separate undocumented code path that applies no such restriction. A caller able to invoke the prompt can therefore read any file readable by the user running the server, including files outside the working directory, and receives the file contents in the prompt response. A leading '~' is expanded to the user's home directory, so credential files such as SSH private keys are directly addressable. The working-directory restriction is additionally bypassable through a symbolic link inside the working directory that points outside it, because the path is not canonicalized before the restriction is applied. All releases from v0.3.0 onward are affected; releases v0.3.0 and v0.4.0 apply no restriction to either form.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
The SQL Expressions experimental feature of Grafana allows for the evaluation of `duckdb` queries containing user input.
The `Release PR Merged` workflow in the github repo taosdata/grafanaplugin is subject to a command injection vulnerabili
An issue was discovered in Grafana through 7.3.4, when integrated with Zabbix. Rated critical severity (CVSS 9.8), this
A signature verification vulnerability exists in crewjam/saml. Rated critical severity (CVSS 9.8), this vulnerability is
Grafana 2.x, 3.x, and 4.x before 4.6.4 and 5.x before 5.2.3 allows authentication bypass because an attacker can generat
Authentication bypass in Grafana OnCall through 1.16.11 lets unauthenticated remote attackers mint a valid PluginAuthTok
Insertion of sensitive information in the centralized (Grafana) logging system in ProLion CryptoSpike 3.0.15P2 allows re
A cross-site scripting (XSS) vulnerability exists in Grafana caused by combining a client path traversal and open redire
The avatar feature in Grafana 3.0.1 through 7.0.1 has an SSRF Incorrect Access Control issue. Rated high severity (CVSS
Grafana is an open-source platform for monitoring and observability. Rated high severity (CVSS 7.5), this vulnerability
Grafana 8.4.3 allows unauthenticated access via (for example) a /dashboard/snapshot/*?orgId=0 URI. Rated high severity (
Grafana 8.4.3 allows reading files via (for example) a /dashboard/snapshot/%7B%7Bconstructor.constructor'/.. Rated high
EUVD-2026-92434
GHSA-ffg3-vfrj-4mjj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB