Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed mcp-pinot port 8080
-
DeliverySend unauthenticated POST to /api/tools/call
-
ExploitInvoke schema/table-config or read-query tool
-
Executionmcp-pinot proxies with server credentials
-
PersistRead or mutate Pinot cluster data
-
ImpactPersist via altered table config
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The mcp-pinot HTTP transport must be enabled (the vulnerable default MCP_TRANSPORT=both or http) and MCP_HOST must remain at the default 0.0.0.0 (or any non-loopback address) so the listener is reachable from outside the host. The attacker needs only TCP reachability to port 8080 (default MCP_PORT) on that interface - no credentials, no user interaction, no specific platform. Exploitation is LIMITED to deployments where the listening interface is reachable by the attacker: instances bound to 127.0.0.1, fronted by an authenticated reverse proxy, or restricted by network policy/firewall to trusted clients are not exploitable. Versions 3.1.0 and later are not vulnerable in their default configuration because the bind host changed to 127.0.0.1 and non-loopback binds are refused without OAuth. |
| Impact | All risk signals align toward maximum priority for any operator running mcp-pinot ≤3.0.1 with the HTTP transport reachable beyond localhost. The CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H vector (10.0) is consistent with the description: no authentication, no user interaction, and tool calls that grant full read/write/admin on Pinot. EPSS and CISA KEV data were not provided in the input, so probability of mass scanning and confirmed in-the-wild use cannot be quantified here - absence is not confirmation either way. No public exploit was identified, but exploitation is trivial (HTTP POST with a JSON body), so the lack of weaponized PoC offers little protection. The most important mitigating factor is deployment scope: instances bound only to loopback or behind authenticated ingress are not exposed, so real-world impact depends heavily on whether operators deployed to Kubernetes/cluster networks with the documented default. |
| Exploit ScenarioDerived | An attacker on the same network segment, VPC, or Kubernetes cluster as a vulnerable mcp-pinot deployment scans for TCP/8080, then sends an unauthenticated POST to /api/tools/call with a JSON body invoking the desired tool - for example {"name":"read-query","arguments":{"query":"SELECT ..."}} to exfiltrate data, or schema/table-config mutation tools to drop or alter Pinot tables. Because the server proxies the request with its own Pinot credentials, the attacker inherits full read/write authority against the cluster without ever touching Pinot directly. No public exploit identified at time of analysis, but the curl examples in the project's own PR description are functionally equivalent to a working PoC. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 18, 2026
Authentication bypass in StarTree mcp-pinot versions 3.0.1 and earlier exposes the Model Context Protocol HTTP server on 0.0.0.0:8080 by default with no authentication, allowing any network-adjacent attacker to invoke every MCP tool - including SQL execution, schema creation, and table-config mutation - against the backing Apache Pinot cluster using the server's own credentials. The maximum CVSS 10.0 score reflects a scope-changing confused-deputy condition. No public exploit identified at time of analysis, but the trivial reachability and presence of write/DDL tooling make exploitation straightforward once the port is found.
RemediationAI
Vendor-released patch: upgrade to mcp-pinot 3.1.0 or later, which changes the default MCP_HOST to 127.0.0.1, refuses non-loopback HTTP binds unless OAuth is enabled, and adds sqlglot-based read-query validation that rejects non-SELECT, stacked, and DDL/admin SQL before forwarding to Pinot (see PR https://github.com/startreedata/mcp-pinot/pull/95 and commit https://github.com/startreedata/mcp-pinot/commit/1c7d3f9cd384854bf72c127d230bdb32299475ad). If immediate upgrade is not possible, set MCP_HOST=127.0.0.1 and MCP_TRANSPORT=stdio to disable network exposure (trade-off: breaks remote/Kubernetes clients), or place the server behind an authenticated reverse proxy / network policy that restricts ingress to trusted client identities (trade-off: requires careful identity binding so the proxy does not itself become a confused deputy). Rotate any Pinot credentials configured in the server, since prior unauthenticated callers may already have used them, and audit Pinot for unexpected schema, table-config, or data changes.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
mcp-pinot is a Python-based MCP (Model Context Protocol) server developed by StarTree that bridges LLM clients to Apache Pinot, an OLAP datastore. The vulnerability is rooted in CWE-306 (Missing Authentication for Critical Function): a prior PR introduced HTTP/SSE transport for Kubernetes deployment but shipped with MCP_HOST=0.0.0.0, MCP_PORT=8080, MCP_TRANSPORT=both, and no OAuth requirement, exposing tool endpoints such as /api/tools/call and /sse to anyone who can reach the listening interface. Because the server holds upstream Pinot credentials and forwards calls server-side, it acts as a deputy that confers its privileges to any anonymous caller - a classic confused-deputy pattern. Affected CPE is cpe:2.3:a:startreedata:mcp-pinot:*:*:*:*:*:*:*:* up to and including 3.0.1.
Know when Python 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:N/UI:N/S:C/C:H/I:H/A:H
Default 0.0.0.0 bind with no auth means network-reachable, low-complexity, unauthenticated, no UI; tools mutate a separate Pinot cluster (scope change) with full read/write/admin impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
mcp-pinot is a Python-based Model Context Protocol (MCP) server for interacting with Apache Pinot. In versions 3.0.1 and below, mcp-pinot defaults to running an HTTP MCP server bound to 0.0.0.0:8080 with no authentication enabled. All MCP tools, including SQL query execution, schema creation, and table-config mutation, are reachable by any network-adjacent caller. The server proxies these calls using server-side Pinot credentials, producing a confused-deputy condition that yields full read/write access to the configured Pinot cluster. This issue has been fixed in version 3.1.0
Articles & Coverage 2
Executive ViewAI
StarTree mcp-pinot versions 3.0.1 and earlier expose the Model Context Protocol server on port 8080 without authentication, allowing any network-adjacent attacker to execute SQL commands, modify database schemas, and alter table configurations using the server's privileges against the backing Apache Pinot cluster. No public exploit identified at time of analysis, but the vulnerability is trivial to exploit once the service is discovered, creating immediate organizational risk to data confidentiality, integrity, and availability.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Firewall rules restricting port 8080 to internal trusted networks only; (2) Reconfigure service binding from 0.0.0.0 to specific trusted IPs or localhost; (3) Network segmentation isolating Pinot infrastructure from untrusted networks; (4) Comprehensive audit logging and monitoring of all MCP connections and operations; (5) Consider temporary service disabling if operationally feasible.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-37951
GHSA-73cv-556c-w3g6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB