Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver prompt-injection payload to agent
-
DeliveryAgent invokes zotero_add_by_url with internal URL
-
Exploit_fetch_embedded_metadata fetches without validation
-
ExecutionRequest reaches loopback/private/link-local host via redirect
-
ImpactInternal meta-tags and error details leaked to attacker
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 zotero-mcp version 0.10.0 through 0.14.1 deployed as an MCP server wired to an LLM agent, with the zotero_add_by_url tool exposed. The attacker must first achieve a successful prompt injection that steers the agent into calling zotero_add_by_url with an attacker-controlled URL; the server's _fetch_embedded_metadata then fetches that URL (and follows redirects) with no destination validation, allowing reach to loopback, private (RFC1918), or link-local (e.g., 169.254.169.254) hosts. Limiting factors: exploitation depends on the chained prompt-injection succeeding (AT:P) and on agent/user interaction (UI:P), not direct network reach; impact is confined to leaking citation meta-tags and error details (Low confidentiality/integrity, no availability impact), and an internal service must actually be reachable from the server's network position. |
| Impact | This is a genuinely low-priority issue despite being a real, confirmed vulnerability. The vendor CVSS 4.0 base score is only 2.3, and the vector (AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N, no subsequent-system impact) describes a server-side request forgery whose exploitation is gated on an attack requirement (AT:P) and passive user/agent interaction (UI:P), with only Low confidentiality and Low integrity impact. No EPSS score was provided in the input and there is no CISA KEV listing, so exploitation probability signals are absent rather than contradictory. There is no explicit POC=YES flag; a third-party technical write-up (hackmd) and the VulnCheck advisory document the mechanism but no weaponized exploit code is indicated in the provided data. The dominant real-world constraint is that exploitation depends on an upstream prompt-injection succeeding against the LLM agent driving the MCP server - a non-trivial precondition - and the payoff is limited to leaking citation meta-tags and error details from internal services, not RCE or bulk data theft. Net: a real defect worth patching, but not an emergency; its risk is bounded by low impact and a chained precondition rather than by any single missing data point. |
| Exploit ScenarioDerived | An attacker plants a prompt-injection payload (e.g., in a document, webpage, or citation record the AI agent later processes) that steers the agent into invoking the zotero_add_by_url tool against an attacker-chosen internal URL such as http://169.254.169.254/ or a loopback admin service. Because _fetch_embedded_metadata fetches the URL without destination validation and follows redirects, the MCP server reaches the internal host and returns citation meta-tags and error details to the attacker, confirming reachability and leaking limited internal information. No public exploit code is identified in the provided data, though a technical write-up describing the flaw exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Server-side request forgery in zotero-mcp 0.10.0 through 0.14.1 lets an unauthenticated attacker who successfully lands a prompt injection steer the connected LLM agent into calling the zotero_add_by_url tool with an attacker-chosen URL, which _fetch_embedded_metadata then fetches without any destination validation. Because redirects are followed, the resulting requests can reach loopback, RFC1918 private, or link-local addresses such as 169.254.169.254, leaking citation meta-tags and error details from internal services that are reachable from the MCP server's network position. Impact is confined to low confidentiality and integrity with no availability effect: exploitation requires the chained prompt injection to succeed (AT:P/UI:R) and an internal service to actually be reachable, and no public exploit identified at time of analysis.
RemediationAI
No vendor-released patch identified at time of analysis; the referenced source is still the vulnerable v0.14.1 code and the issue (https://github.com/54yyyu/zotero-mcp/issues/326) is the place to track a fix, so there is no fixed version number to cite. The most effective compensating control is to remove or disable the zotero_add_by_url tool from the exposed MCP toolset (and any other tool that triggers _fetch_embedded_metadata) until a patched release ships, accepting the functional loss of adding references by URL; if that tool must stay, gate it behind explicit human confirmation of the exact destination URL before execution, which reduces but does not eliminate prompt-injection success. In parallel, enforce network-layer egress control on the host running the MCP server: block outbound traffic to loopback, RFC1918 ranges, link-local/169.254.0.0/16 (including the metadata endpoint), and other internal ranges, allowing only required public destinations via an allowlist proxy; the trade-off is that legitimate Zotero/DOI/citation lookups through internal resolvers or proxies will break and need to be explicitly whitelisted. If the application can be configured to stop following HTTP redirects, or to re-validate the resolved IP after each redirect hop, do so, since redirect-based bypass is a core part of this SSRF path; note that this is a partial mitigation while the underlying unvalidated fetch remains. Reviewing MCP server logs for zotero_add_by_url calls to private or link-local addresses will help detect exploitation attempts, and the writeup at https://hackmd.io/@haind/zotero-mcp-generic-url-metadata-ssrf documents the technique for validation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
zotero-mcp is a Model Context Protocol (MCP) server that exposes reference-manager operations from the 54yyyu/zotero-mcp project to an LLM agent; the vulnerable logic lives in src/zotero_mcp/tools/write.py (v0.14.1 lines 2035-2089) inside _fetch_embedded_metadata, which is invoked by the zotero_add_by_url tool when adding an item by URL. The root cause is CWE-918 (Server-Side Request Forgery): the fetcher accepts a caller-supplied URL and performs the outbound request without validating the resolved destination against loopback, RFC1918 private, or link-local ranges, and it follows HTTP redirects, so an initially benign-looking URL can be bounced into an internal target such as the cloud metadata endpoint 169.254.169.254. The trust boundary that fails is the one between untrusted LLM/agent-supplied content and the MCP server's network privileges: any prompt injection that convinces the agent to invoke zotero_add_by_url turns the server into an internal-network request proxy. The residual exploitability drivers are the chained prompt injection (AT:P in the CVSS 4.0 vector) and agent/user interaction (UI:P/UI:R in the independent 3.1 assessment), while the realized impact is low because the exfiltrated data is limited to citation meta-tags and error details, with no availability impact and no scope change.
Know when the next one hits your stack
- 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Network reachable but exploitation is chained through prompt injection and redirect steering (AC:H) and requires agent interaction (UI:R); no auth (PR:N); only limited info leak, so C:L/I:L/A:N and S:U.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
DescriptionCVE.org
zotero-mcp 0.10.0 through 0.14.1 contains a server-side request forgery vulnerability that allows attackers to reach internal services because _fetch_embedded_metadata fetches URLs without destination validation. Attackers can steer the agent via prompt injection into calling zotero_add_by_url, causing requests to loopback, private, or link-local hosts directly or via redirects, leaking citation meta-tags and error details.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-96366
GHSA-rc65-6pgw-cw9c
NVD
CVE.org
EPSS
VulDB
Exploit-DB