Security1 distinct publisher2 min readPublished
Grafana's MCP server checked that a session ID looked like one instead of checking that it had issued it. Paired with a CVSS 9.1 SSRF in the same server, that gave unauthenticated callers a proxy inside the network.
The Watch · Security desk

Compiled by The WatchSomething wrong?How this is made
Format validation is the old bug. A server that accepts anything shaped like a session ID is doing what web applications did with guessable cookies before 2010: treating a syntax match as proof of issuance. Pillar Security's finding is that the Grafana MCP server validated the format of a session ID rather than checking for a valid credential, so an unauthenticated caller could mint an ID the server never issued and use it to call tools [4].
On its own that is trespass. The tool on the other side of it is what turns trespass into collection. The `grafana_api_request` tool accepted an `X-Grafana-URL` header and let the caller set the HTTP method, path and body of the outbound request, then returned the output [3]. That is CVE-2026-19516, CVSS 9.1, and Pillar reported that the two together form a chain for pulling data out of the internal network hosting the server [2][5].
The demonstration was cloud metadata. Pillar issued a PUT with a TTL header to obtain an IMDSv2 session token, then a second request using that token to retrieve credentials [8]. Count the prerequisites for that sequence: no issued credential and two proxied requests [3]. Pillar's Ariel Fogel wrote that this does not mean every Grafana MCP deployment can reach cloud metadata, and that the property being shown is the server becoming a readable, method-capable proxy from its own network location [9].
The two halves were treated differently. CVE-2026-19516 was fixed in Grafana MCP v1.1.0 [7]. The session validation issue was addressed in the same release by adding optional bearer-token protection, which Pillar says Grafana considered a security improvement rather than a vulnerability [6]. Upgrading therefore closes the reach and leaves the access open until someone enables the tokens [1]. Only the SSRF half carries a tracking identifier in the reporting, which is also the half a scanner will find [2].
`X-Grafana-URL` has produced this shape before. Grafana previously patched CVE-2026-15583, which stopped the Grafana service-account token being exfiltrated to external websites through a crafted version of the same header [10]. Two vulnerabilities, one caller-controlled destination input [4]. Pillar confirmed the new flaw did not yield the service-account token itself [11]. Its recommendation is to treat MCP servers as identity brokers, require authentication on remote deployments, and give any tool that can issue HTTP requests an explicit destination policy [12].
Ranked by verification strength, evidence, and original report placement.
Pillar demonstrated in tests that in certain setups the flaw could retrieve cloud credentials from the AWS Instance Metadata Service (IMDSv2), first using a PUT request and TTL header to obtain the metadata session token, then issuing a second request with that token to retrieve credentials.
Pillar Security discovered and reported two weaknesses in the Grafana MCP server implementation; Grafana patched them last month, and Pillar published its report on Wednesday.
The server-side request forgery flaw is tracked as CVE-2026-19516 with a CVSS score of 9.1, and could allow an MCP caller to use the Grafana MCP server's network position to make requests to internal addresses that would not otherwise be reachable.
CVE-2026-19516 allowed a caller to supply an X-Grafana-URL request header when calling the grafana_api_request tool, controlling the HTTP method, path and body of the outbound request and receiving the output of requests to internal services.
A second weakness let an unauthenticated caller generate their own session ID and use it to call tools via the Grafana MCP server, because the server validated the session ID format rather than checking for a valid credential, accepting "session-shaped IDs" it never issued.
Pillar said the unauthenticated tool calls could be paired with the SSRF vulnerability to form a "killchain" potentially allowing an unauthorized attacker to retrieve sensitive information from the internal network hosting the MCP server.
Distinct publishers with included, body-backed reporting in this cluster.
1 article · September 3, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
security
Reco puts 80% of employee AI tools outside IT oversight against 21% of SaaS2 distinct publishers
build
Twenty-three security checks, zero coverage: AI coding agents as build-pipeline attack surface1 distinct publisher
science
OX Security says MCP command execution is a design choice, so server owners own the risk1 distinct publisher
build
Keycloak's forgot-password flow hands over admin accounts, and the fix is a same-day call1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Precise, but all from the finder
The technical detail is unusually concrete for a single-source story: a named CVE with a CVSS score, the exact header and tool name, the fixed version, and a step-by-step IMDSv2 sequence. Two things hold the score down. Every one of those facts reaches the reader through Pillar's report as relayed by SC World, with no Grafana advisory or second reproduction, and the more alarming half of the finding — cloud credentials — is explicitly limited by Pillar to 'certain setups' in its own tests.
Fix shipped, uptake unknown
We can see that a patched version exists and that one of its protections is opt-in. We cannot see anything about the population it applies to: no count of Grafana MCP deployments, no share reachable remotely, no upgrade telemetry, and no exploitation in the wild. Judging adoption from a version number alone would be invention.
Chain language runs slightly ahead of the demo
'Killchain' and 'cloud credentials' do more work in the telling than the underlying result supports on its own — the credential path was shown in Pillar's own setups, and Pillar itself says not every deployment reaches metadata. Against that, the score is set by an external identifier rather than the vendor, the finder volunteers that the service-account token stayed out of reach, and one genuinely serious detail is understated rather than inflated: the session weakness has no CVE at all, so the half that removes the need for credentials is the half no scanner will flag.
Finder writes the narrative, vendor grades its own fix
Both interested parties shape what the reader gets. Pillar found the bugs, ran the demonstration, named the killchain and closed with a thesis about MCP servers as identity brokers — the kind of conclusion a security firm selling AI-tooling assurance benefits from establishing. Grafana's only appearance is a classification, relayed second-hand, that the session issue was an improvement rather than a vulnerability, which is exactly the call that keeps a CVE off the books. SC World is reporting a disclosure it did not test.
Believable mechanics, thin corroboration
We would defend the mechanics — format-checked sessions, a header that steers outbound requests, a fix in v1.1.0 — because they are specific enough to be falsified by anyone with the code. We would not lean on the severity story: one publisher, one document, no maintainer statement in its own words, and nothing at all about scale or real-world abuse.