Skip to main content

zotero-mcp CVE-2026-108583

| EUVDEUVD-2026-96366 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-10 disclosure@vulncheck.com GHSA-rc65-6pgw-cw9c
2.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver prompt-injection payload to agent
  2. Delivery
    Agent invokes zotero_add_by_url with internal URL
  3. Exploit
    _fetch_embedded_metadata fetches without validation
  4. Execution
    Request reaches loopback/private/link-local host via redirect
  5. Impact
    Internal 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

zotero-mcp 0.10.0 ≤0.14.1

Affected Packages

euvd zotero_mcp no fix

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

Vendor (vulncheck) PRIMARY 2.3 LOW
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
vuln.today AI 4.2 MEDIUM

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.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche open-source Zotero MCP connector, small AI-tooling user base
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
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