Skip to main content

mcp-from-openapi EUVDEUVD-2026-108958

| CVE-2026-115750 MEDIUM
Insufficiently Protected Credentials (CWE-522)
2026-10-23 VulnCheck GHSA-3gr3-m4x5-3fpp
6.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Control spec host or open redirect
  2. Exploit
    Victim loads spec via fromURL with credential headers
  3. Execution
    safeFetch forwards headers on cross-origin redirect
  4. Impact
    Attacker captures bearer token or cookie

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
Exploitation Conditions

Exploitation requires the caller to pass credential headers (Authorization and/or Cookie) to fromURL(); followRedirects defaults to true in the affected code. The attacker must control the spec host or abuse an open redirect on it so that the spec request is redirected to an attacker-controlled origin, at which point the manual redirect loop in safeFetch() re-sends the caller's headers unchanged. Limiting factors: if no credential headers are supplied to fromURL(), or if followRedirects is set to false, no credentials leak; the impact is bounded to the single token/cookie the caller provided (higher only if that token is high-privilege). The bundled CWE-183 blockedHosts trailing-dot bypass additionally requires an operator who relies on blockedHosts. The fix in 2.9.0 drops all caller headers on any cross-origin hop (and on https→http downgrade), which is the vendor-stated complete remedy alongside loading the final URL directly or setting followRedirects:false.

Impact

This is a medium-severity, confidentiality-only credential-leak flaw (CWE-522) rated CVSS 4.0 6.3 by the vendor (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L only). The vector's AT:P correctly signals that exploitation is not unconditional: it depends on a specific attack requirement - the caller must have supplied credential headers to fromURL() and the attacker must control the spec host or abuse an open redirect on it. No EPSS score was provided and the CVE is NOT in CISA KEV, so there is no signal of active or widespread exploitation. The vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a real-but-not-urgent issue. The reporting researcher (VulnCheck) independently scored the core issue CVSS 3.1 3.7 (AC:H), emphasizing the precondition that the caller must pass headers - this aligns with the vendor's AT:P. Net: a genuine credential-exposure bug worth patching this month, but the real-world risk is moderated by the dual precondition (caller passes headers AND attacker controls/redirects the spec origin) and the impact ceiling of a single low-privilege token/cookie unless high-privilege tokens are in use. No conflicting severity signals; the main uncertainty is exploitation likelihood, as no EPSS/KEV data is available.

Exploit ScenarioDerived

An attacker who controls the spec host (or finds an open redirect on it) configures it to redirect the legitimate spec URL to an attacker-owned origin. When a developer or service loads that private spec via fromURL() with an Authorization bearer token or Cookie header, safeFetch() follows the cross-origin redirect and re-sends those headers to the attacker's origin, leaking the credential. The reporter (VulnCheck) demonstrated the token reaching the second origin with a private PoC confirmed by execution; no public exploit code is published, and reproduction detail appears only in the vendor advisory and fix tests.

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

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

Alert me

AnalysisAIv1 – Oct 23, 2026

Credential exposure in the npm package mcp-from-openapi (versions 2.5.0 up to but not including 2.9.0) lets a malicious or compromised spec host harvest the caller's Authorization, Cookie and Proxy-Authorization headers, because the library's manual redirect loop in safeFetch() re-sends those headers unchanged to every hop - including hops that leave the spec URL's origin, which native fetch would strip. An attacker who controls the host serving the OpenAPI document, or who can exploit an open redirect on that host, receives the bearer token or cookie that the caller supplied to fromURL(); impact is confidentiality-only and bounded to the single credential handed over (higher only when that token is high-privilege), and no leak occurs when no credential headers are passed or when followRedirects is disabled. The same advisory bundles a lower-severity blockedHosts denylist bypass (a trailing root dot, e.g. http://internal.corp./, fails the exact-string comparison), relevant only to deployments that rely on blockedHosts with allowInternalIPs enabled. A vendor fix is available in 2.9.0; no public exploit code was identified at time of analysis, though the upstream advisory documents reproduction steps, and the vendor rates the issue CVSS 4.0 6.3 while our independent assessment scores it CVSS 3.1 5.9-class AV:N/AC:H with low confidentiality impact only.

RemediationAI

Vendor-released patch: mcp-from-openapi 2.9.0 (https://github.com/agentfront/mcp-from-openapi/releases/tag/v2.9.0, fixed by PR https://github.com/agentfront/mcp-from-openapi/pull/42, commit 47fb7a655de33958b0c923490ab244343eb5fc44). Upgrading is the vendor-stated complete remedy: 2.9.0 drops all caller headers on any hop that leaves the spec URL's origin - including port changes and an https-to-http downgrade - and keeps them dropped for later hops even if the chain returns to the original origin, and it normalizes allowedHosts/blockedHosts matching (case-insensitive, trailing root dots and IPv6 brackets ignored) so the trailing-dot bypass no longer works; external $ref fetches still never receive caller headers. Until the upgrade lands, the documented alternatives are to pass followRedirects: false to fromURL(), which stops the chain at the redirect and therefore breaks any legitimate redirect the spec host relies on (the spec load will fail unless the final URL is fetched directly), or to resolve the redirect ourselves and load the final URL directly, which requires knowing and pinning the destination host but restores normal fetching. Not passing reusable high-value Authorization or Cookie headers to fromURL() removes the exposure entirely, at the cost of losing authenticated access to private spec documents. Relying on blockedHosts alone is not a safe substitute on 2.5.0-2.8.0, since an attacker-supplied 'host.' form bypasses the exact-string match whenever allowInternalIPs is true. Patch availability and priority follow the vendor advisory; this is a this-month, medium-severity, confidentiality-only issue, not an emergency.

Affected VersionsENISA

mcp-from-openapi 2.5.0 <2.9.0

Affected Packages

euvd mcp_from_openapi fix: 2.9.0

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

The flaw class is CWE-522 (insufficiently protected credentials), with the bundled denylist gap additionally mapped to CWE-183 (permissive allowlist). The package loads remote OpenAPI documents via OpenAPIToolGenerator.fromURL(), which sets followRedirects to true by default, and implements redirect following manually rather than relying on the platform fetch. In the affected ESM build (esm/index.mjs, roughly lines 3042-3066) and the equivalent CJS build (index.js, roughly lines 3130-3155), safeFetch() resolves each hop with current = new URL(location, current) and then calls transport(current, {headers, ...}), passing the caller's header object through with no same-origin comparison. The Fetch standard strips Authorization on cross-origin redirects; this hand-rolled loop does not, and the library's own $ref reader deliberately omits caller headers for exactly this reason, making the spec-fetch path the inconsistent one. Exploitation is attacker-dependent: the caller must supply credential headers to fromURL() and the attacker must control the spec host or abuse an open redirect on it, which is why the vendor's CVSS 4.0 vector carries AT:P while the 3.1 assessment uses AC:H. The secondary issue is hostname canonicalization: blockedHosts.includes(hostname) compares raw strings from new URL(), and the WHATWG URL parser preserves the trailing root dot, so a denylist entry for 'b.test' never matches 'b.test.', and with allowInternalIPs: true the denylist is the only host guard. The 2.9.0 fix normalizes hostnames (lowercase, trailing dots and IPv6 brackets removed) on both sides of the allowedHosts/blockedHosts comparison and extends the IP classifier to decode IPv4-mapped, IPv4-translated, IPv4-compatible, NAT64 (64:ff9b::/96 and 64:ff9b:1::/48) and 6to4 (2002::/16) forms against the IPv4 ranges.

Know when Open Redirect 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 (VulnCheck) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Leak needs the caller to supply headers and the attacker to control the spec host or an open redirect, so AC:H; only low-confidentiality token/cookie disclosure, no integrity or availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/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
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

mcp-from-openapi from 2.5.0 before 2.9.0 contains a credential exposure vulnerability that allows attackers to capture Authorization and Cookie headers because safeFetch() forwards them on cross-origin redirects. Attackers controlling a spec host or abusing an open redirect can redirect fromURL() spec requests to their own origin to steal bearer tokens or cookies.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Low
niche npm library for OpenAPI-to-MCP conversion, limited deployment
Data Quality
4 sources
Confidence: Medium

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 No
EPSS 0.4%
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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2017-1000117 HIGH POC
8.8 Oct 05

A malicious third-party can give a crafted "ssh://..." URL to an unsuspecting victim, and an attempt to visit the URL ca

CVE-2024-52875 HIGH POC
8.8 Jan 31

GFI Kerio Control versions 9.2.5 through 9.4.5 contain an HTTP response splitting vulnerability in the dest parameter of

CVE-2016-5385 HIGH POC
8.1 Jul 19

PHP through 7.0.8 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect

CVE-2013-2248 MEDIUM POC
5.8 Jul 20

Multiple open redirect vulnerabilities in Apache Struts 2.0.0 through 2.3.15 allow remote attackers to redirect users to

CVE-2018-11784 MEDIUM POC
4.3 Oct 04

When the default servlet in Apache Tomcat versions 9.0.0.M1 to 9.0.11, 8.5.0 to 8.5.33 and 7.0.23 to 7.0.90 returned a r

CVE-2012-6499 MEDIUM POC
5.8 Jan 12

Open redirect vulnerability in age-verification.php in the Age Verification plugin 0.4 and earlier for WordPress allows

CVE-2015-2863 MEDIUM POC
4.3 Jul 20

Open redirect vulnerability in Kaseya Virtual System Administrator (VSA) 7.x before 7.0.0.29, 8.x before 8.0.0.18, 9.0 b

CVE-2017-3528 MEDIUM POC
5.4 Apr 24

Vulnerability in the Oracle Applications Framework component of Oracle E-Business Suite (subcomponent: Popup windows (li

CVE-2012-0518 MEDIUM
4.7 Oct 16

Unspecified vulnerability in the Oracle Application Server Single Sign-On component in Oracle Fusion Middleware 10.1.4.3

CVE-2024-21641 MEDIUM POC
6.5 Jan 05

Flarum is open source discussion platform software. Rated medium severity (CVSS 6.5), this vulnerability is remotely exp

CVE-2015-5354 MEDIUM POC
5.8 Jul 01

Open redirect vulnerability in Novius OS 5.0.1 (Elche) allows remote attackers to redirect users to arbitrary web sites

CVE-2015-5461 MEDIUM POC
6.4 Jul 08

Open redirect vulnerability in the Redirect function in stageshow_redirect.php in the StageShow plugin before 5.0.9 for

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