
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-76894 is a missing postMessage origin validation vulnerability in the @aborruso/ckan-mcp-server npm package (part of the ondata/ckan-mcp-server project). The MCP Apps UI resource — an interactive DataStore table rendered in a host webview/iframe — accepts inbound postMessage events without checking event.origin and broadcasts outbound JSON-RPC messages with a wildcard target origin ('*'). All versions of @aborruso/ckan-mcp-server before 0.4.112 are affected; version 0.4.112 contains the fix. The vulnerability was first published by the maintainer on July 9, 2026, and added to the GitHub Advisory Database on October 16, 2026. It carries a CVSS v3.1 base score of 3.1 (Low) (GitHub Advisory, CKAN MCP Advisory).
The root cause is classified under CWE-345 (Insufficient Verification of Data Authenticity) and CWE-940 (Improper Verification of Source of a Communication Channel). In src/resources/datastore-table-ui.ts, the window.addEventListener('message', ...) handler reads event.data directly without inspecting event.origin, allowing any co-reachable frame or window to inject arbitrary fields/records into the rendered table or spoof responses to pending MCP request IDs. Outbound messages use window.parent.postMessage(..., '*'), meaning JSON-RPC payloads are delivered to any parent origin rather than only the trusted host. Proof-of-concept code is included in the advisory: poc/verify-no-origin-check.mjs statically confirms the missing check, and poc/parent-spoof-poc.html demonstrates a cross-origin frame injecting fabricated table rows without completing the MCP handshake (GitHub Advisory, CKAN MCP Advisory).
Exploitation can result in three distinct harms: (1) Content spoofing — an attacker-controlled frame can inject fabricated table rows and phishing links (e.g., via __link_url) that appear to originate from the queried CKAN portal; because values are HTML-escaped, this is display spoofing rather than script injection, so XSS is not achievable. (2) Handshake/UX interference — spoofed inbound messages matching a pending request ID can resolve or reject the UI's MCP requests, disrupting the ui/initialize handshake and degrading panel functionality. (3) Outbound message leakage — if the resource is embedded by an untrusted context, JSON-RPC messages (including method names and parameters) are leaked to that context. Integrity and availability impacts are rated None in the CVSS scoring; confidentiality impact is Low (GitHub Advisory).
No in-the-wild exploitation has been reported, and the CVE status remains Reserved with no CISA KEV catalog entry. The advisory includes two proof-of-concept artifacts published alongside the disclosure, confirming the vulnerability is demonstrable but not weaponized. Exploitability is inherently constrained by the host embedding model: in a correctly configured MCP Apps host, the parent frame is the trusted host, limiting which origins can reach the iframe. The CVSS Attack Complexity is rated High and User Interaction is Required, reflecting these preconditions. No EPSS score or threat actor attribution is available at this time (GitHub Advisory, CKAN MCP Advisory).
@aborruso/ckan-mcp-server DataStore Table UI resource (versions < 0.4.112) in a webview or iframe where the attacker can introduce a sibling or parent frame.postMessage with a payload containing arbitrary fields and records (e.g., { data: { fields: [...], records: [...], __link_url: 'https://phishing.example' } }). Because no event.origin check exists, the UI's initTable() function renders the attacker-supplied data as if it came from the legitimate CKAN portal.ui/initialize handshake, causing the panel to malfunction or accept attacker-controlled initialization state.postMessage calls (sent to '*') to capture JSON-RPC method names, parameters, and session data (GitHub Advisory, CKAN MCP Advisory).postMessage traffic to/from the DataStore Table UI iframe; outbound JSON-RPC messages received by origins other than the trusted MCP host.ui/initialize handshake failures or repeated re-initialization events logged by the MCP host.__link_url table columns; MCP panel displaying fabricated or inconsistent data compared to the underlying data source.Upgrade @aborruso/ckan-mcp-server to version 0.4.112 or later, which is the patched release. The advisory recommends three code-level remediations for those who cannot immediately upgrade: (1) validate event.origin against an allowlist of expected host origins on every inbound message event and drop messages from other origins; (2) replace the wildcard '*' target origin in all outbound postMessage calls with the explicit host origin established during ui/initialize; (3) optionally bind communication to a nonce or channel negotiated during ui/initialize so only the authenticated host can drive the panel. No configuration-only workaround is available; patching is the recommended remediation (GitHub Advisory, CKAN MCP Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."