Missing origin checks in CKAN MCP Server DataStore table UI
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- High
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-345.
Summary
CKAN MCP Server before 0.4.112 has a DataStore table UI resource that accepts window message events without checking event.origin. The same resource sends JSON-RPC messages with a wildcard target origin, so a frame that can reach the embedded document can inject fabricated fields or records, spoof pending ui/initialize responses, or receive outbound messages when embedded by an untrusted parent. Missing origin verification (CWE-345) lets an attacker in a reachable frame send messages the UI accepts as genuine. Exploitation requires user interaction and depends on how the host embeds the resource, and the injected content is display spoofing because values are HTML escaped.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
Description from the CNA
CKAN MCP Server is a tool for querying CKAN open data portals. Prior to 0.4.112, the DataStore table UI in src/resources/datastore-table-ui.ts accepts window message events without validating event.origin and sends JSON-RPC messages through postMessage with a wildcard target origin. A frame that can reach the embedded document can inject fabricated fields or records, spoof pending ui/initialize responses, disrupt the MCP UI handshake, or receive outbound messages when the resource is embedded by an untrusted parent. Values are HTML escaped, so the demonstrated content injection is display spoofing rather than script execution, and exploitability depends on the host embedding model. This issue is fixed in version 0.4.112.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ondata | ckan-mcp-server | before 0.4.112 | 0.4.112 | Patch available | CNA |
| — | @aborruso/ckan-mcp-server (npm) | before 0.4.112 | 0.4.112 | Patch available | GHSA-vqff-r82h-9crc |
- ckan-mcp-server Vendorondata Affected before 0.4.112 Fixed in 0.4.112 Patch available CNA
- @aborruso/ckan-mcp-server (npm) Vendor— Affected before 0.4.112 Fixed in 0.4.112 Patch available GHSA-vqff-r82h-9crc
Remediation
Upgrade ckan-mcp-server and the npm package @aborruso/ckan-mcp-server to version 0.4.112, which fixes the issue. CISA does not list this vulnerability in its Known Exploited Vulnerabilities catalog.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
- Fix · CNA ckan-mcp-server (ondata) Fixed in 0.4.112
- Fix · GHSA-vqff-r82h-9crc @aborruso/ckan-mcp-server (npm) Fixed in 0.4.112 Advisory →
Timeline
- 2026-11-03 Threatist record created from CVE-2026-76894
References
More ondata vulnerabilities
- TI-2026-51869 CKAN MCP Server: Cache-key canonicalization collision enables cache confusion / poisoning CVSS 3.1MEDIUM 6.5
- TI-2026-25502 CKAN MCP Server: SSRF via base_url allows access to internal networks CVSS 3.1MEDIUM 5.7
- TI-2026-51867 CKAN MCP Server: Information disclosure via verbose error reflection CVSS 3.1LOW 3.7
- TI-2026-51868 CKAN MCP Server: MQA server allowlist bypass via unanchored regex (`isValidMqaServer`) CVSS 3.1MEDIUM 5.3
- TI-2026-44132 @aborruso/ckan-mcp-server has SSRF via DNS-name → internal IP — incomplete fix of CVE-2026-53509 CVSS 3.1MEDIUM 5.7
- TI-2026-38583 @aborruso/ckan-mcp-server: SSRF via base_url allows access to internal networks (Potential fix bypass of CVE-2026-33060) CVSS 3.1MEDIUM 5.7
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences