Quick answers
- Is CVE-2026-73846 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-73846 being exploited in the wild.
- How severe is CVE-2026-73846?
- Medium severity, with a CVSS score of 6.5, published 14 August 2026.
- Which products and versions are affected?
- @aborruso/ckan-mcp-server (npm) < 0.4.112, SEMVER:introduced=0,fixed=0.4.112.
- Is there a fix for CVE-2026-73846?
- Yes. @aborruso/ckan-mcp-server (npm): upgrade to 0.4.112 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-73846 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-73846?
- Check whether you run @aborruso/ckan-mcp-server (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- @aborruso/ckan-mcp-server (npm): upgrade to 0.4.112 or later
npm install @aborruso/ckan-mcp-server@0.4.112
Technical details
The vulnerability is a cache-key canonicalization collision (CWE-436: Interpretation Conflict, CWE-345: Insufficient Verification of Data Authenticity). The `canonicalizeParams` function in `src/utils/cache.ts` joins sorted key-value pairs with unescaped `&` delimiters and does not escape `=` characters. The resulting string is then prefixed with `serverUrl` and `action` separated by unescaped `|` characters before hashing. This creates an ambiguity: parameters `{q: "budget", rows: 10}` and `{q: "budget&rows=10"}` both serialize to the same canonical string `q=budget&rows=10`. Additionally, objects and strings cannot be distinguished (e.g., `{filters: {a: "b"}}` vs `{filters: '{"a":"b"}'}` collide). An attacker can inject any canonical string into the alphabetically-first parameter name. On shared caches (enabled by default, including Cloudflare Workers' `caches.default` and Node.js in-process LRU), an attacker primes a colliding key so a victim's distinct query receives the attacker's cached response. Preconditions: caching must be enabled and the instance must be shared. Attack vector is network; no authentication or user interaction required. The fix requires encoding cache keys using percent-escaping, structured JSON with type tags, or a separator that cannot appear in encoded fields. Patch available in version 0.4.112.
Affected products
- ondata @aborruso/ckan-mcp-server < 0.4.112
Identifiers
- CVE-2026-73846
- GHSA-78x9-fhhx-v2g6
Timeline
- 2026-09-03: disclosed: Published on GitHub Advisory Database
- 2026-09-03: patched: Version 0.4.112 released with fix