Skip to main content

ash_ai CVE-2026-81315

| EUVDEUVD-2026-68304 HIGH
Origin Validation Error (CWE-346)
2026-08-31 EEF
7.4
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Recon
    Register attacker domain with short DNS TTL
  2. Delivery
    Serve malicious page to victim developer
  3. Exploit
    DNS TTL expires; domain resolves to 127.0.0.1
  4. Install
    Browser grants same-origin access to local MCP server
  5. C2
    Malicious JS sends MCP request with Host and X-Forwarded-Proto: https spoofed
  6. Execute
    Flawed origin_allowed?/3 check passes
  7. Impact
    MCP server executes calls under victim's local actor

Vulnerability Assessment

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

Exploitation requires all of the following: (1) the victim is running ash_ai's AshAi.Mcp.Server with its default allowed_origins: nil setting (versions 0.8.0 to 0.x); (2) the victim visits an attacker-controlled web page in a browser; (3) the attacker controls a DNS record with a TTL short enough to expire and be re-resolved to 127.0.0.1 while the page remains open (classic DNS-rebinding prerequisite); (4) the MCP server is listening on a port reachable from localhost in the browser. Exploitation is blocked when: the MCP server is configured with an explicit :allowed_origins allowlist (which replaces the vulnerable code path); the server is listening on a non-standard port that the browser's port-blocking heuristics reject; or the victim's network enforces DNS-rebinding protections (some routers and enterprise DNS resolvers block external domains resolving to RFC-1918 addresses). No special authentication or privileges are needed by the attacker beyond the ability to serve a webpage and control a DNS record.

Impact

The CVSS 4.0 score of 7.4 (AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N) correctly reflects high confidentiality and integrity impact on the vulnerable system with no availability dimension. AT:P acknowledges the DNS-rebinding timing prerequisite, and UI:A correctly captures the requirement that the victim actively visit the attacker's page. No EPSS data was provided, and no KEV listing or public POC exists at time of analysis, so exploitation likelihood is inferred from the CVSS vector and technical mechanics rather than observed threat activity. The realistic risk is most relevant to developers who run ash_ai's MCP server during local development while also browsing the web - a plausible dual-use scenario in a development workflow. Enterprise or production deployments of the MCP server are less likely to be exposed to browser-sourced DNS-rebinding because they would typically sit behind a reverse proxy rather than directly on localhost. The absent availability impact, required user interaction, and DNS-rebinding timing constraint together limit mass exploitation; however, for targeted attacks against developers with sensitive local data exposed via MCP, the impact is significant.

Exploit ScenarioDerived

A developer running ash_ai's local MCP server visits a malicious web page registered on attacker.example under a short DNS TTL. After the page loads, the attacker flips the DNS record to 127.0.0.1; the browser's same-origin policy now permits JavaScript on attacker.example to send fetch requests to the locally running MCP server on that domain. The malicious script includes the headers Host: attacker.example and X-Forwarded-Proto: https, causing the flawed origin_allowed?/3 check to pass, and issues arbitrary MCP tool calls under the victim's local actor credentials.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

AnalysisAI

DNS-rebinding protection in AshAi.Mcp.Server (ash_ai 0.8.0-0.x) is bypassable because the default origin check trusts the attacker-controlled Host and X-Forwarded-Proto headers as proxies for TLS context. A malicious web page can exploit this to issue arbitrary cross-site requests to the victim's locally running MCP server, executing MCP calls under the victim's actor credentials. No public exploit has been identified at time of analysis, but the attack path is mechanically straightforward for any attacker who can lure a developer to a malicious page while they have the MCP server running locally.

RemediationAI

Upgrade ash_ai to version 1.0.0 or later, which contains the fix committed at https://github.com/ash-project/ash_ai/commit/28af68d73134df0b8fb3aa6ab03e8fd795b07c21. The patched release version is implied by the 'before 1.0.0' affected range but has not been independently confirmed as a tagged Hex.pm release from the provided data - verify the release tag on the ash-project/ash_ai repository before upgrading. For deployments that legitimately serve a browser client from a non-localhost origin (e.g., a local dev UI at app.localhost:4000), explicitly configure the :allowed_origins option with a list of trusted origin strings or a 1-arity predicate function; relying on the default nil behavior for non-localhost use is no longer supported. As an immediate compensating control before the upgrade, restrict the MCP server's listening socket to the loopback interface only (127.0.0.1 or ::1) and, if possible, add network-level controls that prevent browser-accessible ports from being reached by DNS-rebinding attempts, though this will break any legitimate remote access to the server.

Affected VersionsENISA

ash_ai c94f0b17fbe252f68755ba512678586164ba6139 <28af68d73134df0b8fb3aa6ab03e8fd795b07c21
ash_ai 0.8.0 <1.0.0

Affected Packages

euvd ash_ai fix: 1.0.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 vulnerability resides in the Elixir module AshAi.Mcp.Server (CPE cpe:2.3:a:ash-project:ash_ai), which implements a Model Context Protocol server for the Ash framework. The root cause is CWE-346 (Origin Validation Error): with the default allowed_origins: nil, the origin_allowed?/3 function approved a cross-origin request when uri.host matched conn.host AND the X-Forwarded-Proto header read 'https'. Neither value is trustworthy - conn.host is derived from the browser-supplied Host header, and X-Forwarded-Proto is read directly from the raw request with no trusted-proxy check. Under DNS rebinding, an attacker registers a domain that initially resolves to their server, loads a malicious page in the victim's browser, lets the DNS TTL expire so the domain then resolves to 127.0.0.1, and the browser now considers XHR/fetch requests to that domain same-origin. The malicious JavaScript simultaneously injects X-Forwarded-Proto: https, satisfying both conditions of the flawed check. The commit diff confirms the fix removes the Host+ForwardedProto branch entirely and restricts the nil-allowlist policy to localhost origins only, deleting the forwarded_scheme/1 helper function as it is no longer needed.

Know when Ash Ai 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 (EEF) PRIMARY 7.4 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.0 HIGH

AC:H for DNS-rebinding timing requirement; UI:R for victim page visit; S:C because attack crosses from browser into local MCP server; no availability impact.

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

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

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

DescriptionCVE.org

Origin Validation Error vulnerability in ash-project ash_ai allows a malicious web page to bypass the MCP server's DNS-rebinding protection and issue cross-site requests to a user's local MCP server with that user's actor.

In AshAi.Mcp.Server, with the default allowed_origins: nil, origin_allowed?/3 accepts an origin when uri.host == conn.host and the forwarded scheme is https. Both values are attacker-controlled: conn.host comes from the Host header and the scheme is read from the raw x-forwarded-proto header with no trusted-proxy check. Under DNS rebinding the browser sends the attacker's origin and a matching host, and page JavaScript may set X-Forwarded-Proto: https, so the check passes with no TLS or proxy involved. The fix trusts only localhost origins by default; other origins require an explicit allowed_origins allowlist.

This issue affects ash_ai: from 0.8.0 before 1.0.0.

Technical POC Analysis

CWE-346 (Origin Validation Error) in AshAi.Mcp.Server (lib/ashai/mcp/server.ex, checkorigin/2 and its private helper originallowed?/3, cited by the advisory as lines 514-533 in ashai 0.8.2).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Rare
niche Elixir MCP framework, small developer-tooling footprint
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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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