Skip to main content

MCP Ruby SDK EUVDEUVD-2026-50489

| CVE-2026-63118 MEDIUM
Origin Validation Error (CWE-346)
2026-07-29 GitHub_M GHSA-rjr6-rcgv-9m7m
6.9
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Register DNS rebinding domain with short TTL
  2. Delivery
    Lure victim developer to malicious page
  3. Exploit
    Browser re-resolves domain to 127.0.0.1
  4. Install
    Send crafted requests to local MCP server
  5. C2
    Server accepts requests without Host/Origin check
  6. Execute
    Invoke exposed MCP tools via JavaScript
  7. Impact
    Exfiltrate tool responses to attacker

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

Exploitation requires two simultaneous conditions: the victim must be running an MCP Ruby SDK server (StreamableHTTPTransport, pre-0.23.0) locally, and the victim must visit an attacker-controlled webpage in a browser capable of performing DNS rebinding. The attack is strictly browser-mediated - non-browser MCP clients that do not send an HTTP Origin header are explicitly unaffected, as the validate_origin method exempts Origin-less requests. User interaction (UI:A) is mandatory; the victim must navigate to the malicious page and remain there while the DNS TTL expires and rebinding occurs. The AT:P prerequisite reflects that the attacker must control a domain with a very short TTL and coordinate the rebinding timing. Exploitation is bounded by the tools the victim has registered on the MCP server - servers exposing only low-sensitivity tools carry proportionally lower actual risk despite the same CVSS score. No authentication to the MCP server is required once the rebinding succeeds.

Impact

The CVSS 4.0 vector (6.9: AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N) accurately reflects two real constraints: AT:P (attack prerequisites - a locally running MCP server must be present) and UI:A (victim must visit the attacker's page). These conditions frequently co-occur in developer workflows, where AI-integrated tooling runs alongside normal web browsing, making the theoretical risk quite concrete for the affected user population. Confidentiality impact is rated High on both the vulnerable system and the subsequent system (VC:H, SC:H), acknowledging that MCP tools frequently expose filesystem access, AI context windows, credentials, or internal APIs. No EPSS data was provided in the input, preventing quantitative exploitation probability assessment. No CISA KEV listing exists, and no public POC has been identified at time of analysis. Despite a moderate numeric score, the realistic cohort of affected users (Ruby developers with active local MCP servers) and the sensitivity of what MCP tools typically expose elevate practical risk above the score alone implies for that specific population. The attack does not require any authenticated access to the MCP server - the missing header validation is the sole barrier bypassed.

Exploit ScenarioDerived

An attacker registers a domain with a very short TTL, serves a malicious JavaScript payload, and waits for a developer running a local MCP Ruby SDK server to visit the page. After the browser caches the initial DNS response, the attacker flips the domain's A record to 127.0.0.1; subsequent fetch calls from the still-open page are routed to the local MCP endpoint, which - lacking Host or Origin validation - services them. The attacker's JavaScript can enumerate and invoke any registered MCP tool, returning results (file contents, credentials, AI context) directly to the attacker's origin. No public exploit code has been identified at time of analysis.

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 – Jul 29, 2026

DNS rebinding in MCP Ruby SDK's StreamableHTTPTransport (mcp gem, all versions prior to 0.23.0) exposes locally running MCP servers to browser-driven tool invocation without authentication. The transport accepted HTTP requests without validating Host or Origin headers, allowing a malicious webpage to exploit short-TTL DNS re-resolution to reach the victim's loopback-bound server and call any registered MCP tool. No public exploit code is identified at time of analysis, and no CISA KEV listing exists; however, the CVSS 4.0 score of 6.9 with VC:H and SC:H reflects a meaningful confidentiality risk for developers actively using local MCP tooling alongside a browser.

RemediationAI

Upgrade the mcp gem to version 0.23.0, which is the vendor-released patch confirmed at https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v0.23.0 and implemented in commit ba543083a7594e7892b29464b89091816446ff7a. Version 0.23.0 enables DNS rebinding protection by default with no configuration changes required for loopback-bound servers. For deployments behind a reverse proxy or bound to a non-loopback interface, operators must explicitly widen the allow-lists via the allowed_hosts: and allowed_origins: constructor parameters to avoid spurious 403 rejections - failing to do so after upgrading will break legitimate reverse-proxy traffic. Operators whose upstream proxy already validates Host and Origin may pass dns_rebinding_protection: false to disable the built-in check, trading defense-in-depth for zero configuration overhead; this should only be done when the proxy enforcement is verified and audited. As a pre-patch compensating control, strictly binding the MCP server to 127.0.0.1 (rather than 0.0.0.0) and blocking network access to the MCP port from external interfaces reduces the attack surface but does not eliminate the DNS rebinding vector from same-machine browser sessions.

Affected VersionsENISA

ruby-sdk < 0.23.0

Affected Packages

rubygems mcp fix: 0.23.0
euvd ruby_sdk fix: 0.23.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in rubygems, euvd

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

Technical ContextAI · show details

The MCP Ruby SDK (mcp gem, CPE: cpe:2.3:a:modelcontextprotocol:ruby-sdk:*:*:*:*:*:*:*:*) implements the Model Context Protocol, a standard for exposing server-side tools and contextual data to AI clients. Its StreamableHTTPTransport class is a Rack-mountable HTTP endpoint commonly bound to localhost during development. CWE-346 (Origin Validation Error) captures the root cause: the transport accepted all inbound requests without inspecting the HTTP Host or Origin headers. DNS rebinding exploits this by loading a malicious page under attacker.com (initially resolving to the attacker's IP), letting the DNS TTL expire, then re-resolving attacker.com to 127.0.0.1. The victim's browser - already holding a same-origin session with attacker.com - can now issue fetch requests that the local MCP server treats as legitimate because no header check was performed. The v0.23.0 fix introduces validate_host and validate_origin methods: Host is checked against loopback defaults (127.0.0.1, ::1, localhost) plus a configurable allowed_hosts list; Origin, when present, must be same-origin or in an allowed_origins list. Requests without an Origin header (non-browser MCP clients) are explicitly exempted.

Know when Ruby Sdk 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 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

DNS rebinding requires attack prerequisites and mandatory browser interaction, mapping to AC:H and UI:R; scope changes to local MCP server; only confidentiality impact is confirmed.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Jul 29, 2026 - 20:02 EUVD

DescriptionCVE.org

MCP Ruby SDK is the official Ruby SDK for Model Context Protocol servers and clients. Prior to 0.23.0, MCP::Server::Transports::StreamableHTTPTransport in the mcp gem does not validate the HTTP Host or Origin request headers, which allows a malicious browser page to use DNS rebinding to reach a locally running MCP server and invoke exposed tools. This issue is fixed in version 0.23.0.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
Ruby-specific SDK for emerging MCP protocol
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
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 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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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