Skip to main content

CKAN MCP Server CVE-2026-61612

| EUVDEUVD-2026-84031 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-21 GitHub_M GHSA-798p-78g2-v556
5.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Plant prompt-injection payload in web/document content
  2. Delivery
    Victim AI assistant ingests malicious instructions
  3. Exploit
    Assistant invokes tool with internal-resolving hostname
  4. Execution
    Guard passes as DNS not resolved
  5. Persist
    Server requests 169.254.169.254 IMDS
  6. Impact
    Exfiltrate cloud IAM credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires the CKAN MCP server (ondata/@aborruso ckan-mcp-server < 0.4.108) to be running and connected to a victim's AI assistant, and the attacker must supply a malicious server_url/base_url - realistically via prompt injection embedded in content the assistant processes (hence UI:R). The specific technical trigger is a hostname that passes the string-only validateServerUrl guard but RESOLVES via DNS to an internal address (documented examples: lvh.me→127.0.0.1, *.nip.io→169.254.169.254), reaching loopback and cloud IMDS. Limiting factors: exploitation depends on successful prompt injection while the server is connected; the fixed version additionally hardens the network-exposed HTTP transport by refusing to start without CKAN_ALLOWED_DOMAINS (default-deny, unless CKAN_HTTP_ALLOW_ALL=true), and the Cloudflare Worker deployment was never affected because the CF sandbox already blocks internal addresses. Cloud-hosted deployments where IMDS returns IAM credentials face the highest impact.

Impact

This is a genuine but conditionally-gated SSRF (CWE-918) in a niche MCP server, and the signals largely agree it is moderate rather than emergency. There is no CISA KEV listing and no structured POC flag for this specific bypass, so exploitation status is 'no public exploit identified at time of analysis' - though the bypass technique itself (DNS names like lvh.me→127.0.0.1 and *.nip.io→IMDS) is publicly documented in the fix log and a sibling advisory, lowering the effort to reproduce. EPSS, KEV and SSVC data were not supplied, so probabilistic exploitation cannot be quantified. The most important conflict is in the CVSS metrics: the supplied vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N (5.7), but the closely-related GHSA advisory explicitly argues Attack Complexity is HIGH because exploitation requires prompt injection of the victim's AI assistant while this MCP server is connected - a material precondition the AC:L rating understates. Impact is confidentiality-only (C:H) and credible: the flaw reaches the cloud metadata endpoint 169.254.169.254, meaning IAM credential theft, which the description notes is strictly worse than the prior CVE-2026-53509 (loopback only). Net: real priority for anyone running this MCP server against cloud infrastructure, but the prompt-injection + user-interaction gating keeps it out of 'critical, patch-tonight' territory.

Exploit ScenarioDerived

An attacker plants a malicious webpage or document containing a prompt-injection payload that instructs a victim's AI assistant - which has the CKAN MCP server connected - to call ckan_package_search or sparql_query with a server_url whose hostname resolves to an internal address (e.g. a nip.io name mapping to 169.254.169.254). Because validateServerUrl only inspected the hostname string and never resolved DNS, the request passes the guard and the server fetches AWS/cloud metadata, returning IAM credentials into the assistant's context. No weaponized public exploit is cataloged for this specific third bypass, but the DNS-name bypass technique is documented in the vendor fix log.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 21, 2026

Server-side request forgery in CKAN MCP Server (ondata/@aborruso ckan-mcp-server) before version 0.4.108 allows an attacker who can influence the caller-supplied server_url parameter to force the server to issue requests to loopback addresses and to the cloud instance metadata service at 169.254.169.254. The flaw is the third bypass of the same validateServerUrl guard: because that guard only inspects the hostname string and never resolves DNS, any hostname that resolves to an internal address (documented examples lvh.me to 127.0.0.1 and *.nip.io to IMDS) slips through, and exploitation realistically requires prompt injection into content the victim's AI assistant processes while the MCP server is connected (CVSS UI:R). No confirmed active exploitation (CISA KEV) and no public exploit identified at time of analysis, though a proof-of-concept for an earlier, related SSRF variant in the same package is published; impact is highest for cloud-hosted deployments where IMDS returns IAM credentials.

RemediationAI

Vendor-released patch: upgrade CKAN MCP Server to 0.4.108, which resolves the supplied hostname, validates every resolved IP through the shared isBlockedIp check, and pins connections with a custom lookup agent to defeat DNS rebinding and redirect-to-internal tricks; the fix is delivered via the GitHub release v0.4.108 and commit bb7439b553b9f965adc3d43bcd415c42eebe2f40, with details in advisory GHSA-798p-78g2-v556. As part of the same release, operators of the network-exposed HTTP transport should set CKAN_ALLOWED_DOMAINS to a strict allowlist of trusted CKAN/SPARQL portals, because the server now refuses to start without it (default-deny); the CKAN_HTTP_ALLOW_ALL=true escape hatch restores the prior permissive behaviour but logs a warning and re-opens the exposure surface, so use it only in fully trusted environments, and note that stdio transport remains open and therefore needs the allowlist or an upgraded client-side boundary instead. If upgrading is not immediately possible, the compensations must be network-level and specific: keep the MCP server on a segment whose egress is blocked to 169.254.169.254/32 and to RFC 1918 plus loopback ranges (implemented as an egress firewall or proxy allowlist), which stops IMDS credential theft but breaks any legitimate CKAN portal hosted in those ranges; prefer stdio over the HTTP transport and disable/not expose the HTTP listener to untrusted callers, which removes the remote entry point but not prompt-injection-driven invocation through a connected assistant; enforce IMDSv2 with hop-limit 1 on AWS so metadata calls require a token, which mitigates credential theft but does not prevent internal port scanning; and constrain what content the connected AI assistant is allowed to process, since exploitation hinges on prompt injection controlling the server_url parameter. The published proof-of-concept for the earlier GHSA-3xm7-qw7j-qc8v variant shows unrestricted base_url values reaching an internal sidecar nine times, which is a useful validation pattern for confirming these controls.

Affected VersionsENISA

ckan-mcp-server @aborruso/ckan-mcp-server

Affected Packages

npm @aborruso/ckan-mcp-server fix: 0.4.108

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The underlying issue is CWE-918 (Server-Side Request Forgery) in the URL-validation utility of the CKAN MCP Server, a Node/TypeScript MCP server that exposes tools such as ckan_package_search and sparql_query, each accepting an arbitrary server_url/base_url. The validateServerUrl function introduced for CVE-2026-33060 and extended for CVE-2026-53509 performs only syntactic checks: it blocks non-HTTP(S) schemes and internal IP address literals (IPv4 ranges 0.0.0.0/8, 10/8, 127/8, 100.64/10, 169.254/16, 172.16/12, 192.168/16, 255/8, and IPv6 ::1, ::, fc00::/7, fe80::/10, IPv4-mapped forms) but never resolves the supplied hostname. Any attacker-chosen DNS name that resolves to one of those ranges therefore passes the guard and the server connects to it. The 0.4.108 fix refactors the check into a shared isBlockedIp helper used both by the literal guard and by a new DNS-resolution guard (createSsrfSafeLookup / assertHostnameResolvesSafe): on the Node/axios path it resolves the hostname, validates every resolved IP, and pins the connection via a custom lookup agent to close DNS-rebinding and redirect-to-internal bypasses, while the fetch-based sparql_query path performs a pre-resolution check and is restricted to HTTPS; CKAN requests also gain maxRedirects: 5. The commit notes this bypass reached IMDS, which is strictly broader than the prior variant that reached only loopback. Cloudflare Worker deployments were never exposed because the CF sandbox already blocks internal addresses, and the same release adds a default-deny allowlist gate requiring CKAN_ALLOWED_DOMAINS before the network-exposed HTTP transport will start.

Know when Ckan Mcp Server 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

Vendor (GitHub_M) PRIMARY 5.7 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 5.3 MEDIUM

Exploitation needs prompt injection of the victim assistant (AC:H, UI:R); attacker supplying malicious content is unauthenticated (PR:N); IMDS credential disclosure is C:H, no integrity/availability impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

CKAN MCP Server is a tool for querying CKAN open data portals. Prior to version 0.4.108, the SSRF guard validateServerUrl (added for CVE-2026-33060, extended for CVE-2026-53509) validates only the hostname string and never resolves DNS. Any caller-supplied server_url whose hostname *resolves* to an internal address passes the guard, so the server issues requests to loopback and cloud metadata (169.254.169.254). This is a third bypass of the same guard, and it reaches IMDS - strictly more than CVE-2026-53509, which only reached loopback. Version 0.4.108 contains an updated fix.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche open-source CKAN open-data MCP server, small npm footprint
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

48
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy