Sceawere
Vulnerability Detail
CVE-2026-73846UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
CKAN MCP Server Cache Poisoning
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 6.5
- Creation Date
- 1h ago
- Vendor
- ondata
- Product
- ckan-mcp-server
- Attack Type
- CWE-345: Insufficient Verification of Data Authenticity
- Vector String
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N
- Attack Complexity
- HIGH
Narrative and Response
Description
CKAN MCP Server is a tool for querying CKAN open data portals. Prior to 0.4.112, canonicalizeParams in src/utils/cache.ts serializes request parameters with unescaped ampersand, equals-sign, and vertical-bar delimiters, allowing different logical parameter sets used by buildCacheKey to collide and an attacker to prime a shared cache with a response for a victim's distinct query. This issue is fixed in version 0.4.112.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "6.5",
"pubDate": "2026-08-14T17:20:36.953Z",
"pubdate": "2026-08-14T17:20:36.953Z",
"executiveSummary": "An improper parameter serialization vulnerability exists in the CKAN MCP Server prior to version 0.4.112. The flaw resides in the canonicalizeParams function located within src/utils/cache.ts, which fails to properly escape delimiters such as ampersands, equals-signs, and vertical bars during the serialization of request parameters. This cryptographic or logical collision allows disparate logical parameter sets to generate identical cache keys via buildCacheKey. An unauthenticated remote attacker can exploit this weakness to execute cache poisoning attacks, effectively injecting malicious or unintended responses into a shared caching mechanism. Consequently, subsequent victims querying distinct parameters may be served the attacker-primed cached response, leading to potential data confusion, unauthorized information disclosure, or integrity violations within the application context. Exploitation requires the ability to interact with the server and craft specially formulated query parameters designed to trigger cache collisions. Remediation requires upgrading the CKAN MCP Server to version 0.4.112 or later, where parameter delimiter escaping is properly implemented to ensure distinct logical parameters produce unique cache keys.",
"technicalDetails": "The vulnerability is rooted in the parameter serialization logic implemented within the canonicalizeParams function in src/utils/cache.ts of the CKAN MCP Server. In versions prior to 0.4.112, the function serializes incoming request parameters without adequately escaping critical delimiter characters, specifically the ampersand (&), equals-sign (=), and vertical-bar (|). These characters carry structural significance in parameter parsing and serialization. When the application passes these unescaped parameters to the buildCacheKey function to generate a unique cache identifier, distinct sets of logical parameters can evaluate to the exact same serialized string representation. This collision breaks the expected isolation between separate query contexts.\nThe step-by-step exploitation flow begins with an attacker analyzing the application's query parameter handling and identifying how the canonicalizeParams function flattens and concatenates input values. The attacker then crafts a malicious request containing specially manipulated parameters that utilize unescaped delimiters. Although this query represents a distinct logical operation from the perspective of the victim, the lack of proper escaping causes canonicalizeParams to produce a serialized string that collides with an intended target key or primes the cache with an arbitrary response.\nUpon sending this crafted request, the CKAN MCP Server processes the input, generates the colliding cache key via buildCacheKey, and stores the resulting response in the shared cache layer. When a victim subsequently issues a legitimate, distinct query that maps to the same collision-induced cache key, the server retrieves and returns the attacker-primed cached response instead of executing the correct logic or fetching fresh data. The vulnerable component is the parameter serialization and caching subsystem of the CKAN MCP Server affecting all versions before 0.4.112. The vulnerability can be exploited remotely over the network without requiring authentication or elevated privileges, provided the attacker can reach the caching endpoints and manipulate query parameters."
}