Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to chat interface
-
DeliveryEnumerate exposed tool names and parameter schemas
-
ExploitSubmit arguments crafted to trigger exception in tool callback
-
ExecutionReceive raw exception text relayed by LLM
-
ImpactExtract DB schema, SQL, or policy internals for further reconnaissance
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Error message sanitization
MITRE ATT&CK
1 technique across 1 tactic: Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold an authenticated session with access to the AI chat interface (CVSS PR:L). The ash_ai deployment must be running a version in the range 0.6.0 to below 1.0.0. At least one registered tool callback or Ash lifecycle hook must be capable of raising an exception whose Exception.message/1 output contains sensitive internal text - most commonly when callbacks interact with Ecto (producing SQL and schema details in errors), invoke Ash authorization policies (embedding policy module names), or call adapters that surface diagnostic context in exceptions. The attacker must be able to steer tool input arguments into the raising code path, which typically requires knowing or discovering valid tool names and parameter schemas exposed by the application. This vulnerability does not affect ash_ai deployments that do not expose tool-calling functionality to end users, or where the chat interface is restricted to fully privileged internal operators with no information-disclosure risk. No special network position, exploit payload, or prior system access beyond an authenticated chat session is required. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N) accurately characterizes a moderate, network-accessible information-disclosure risk: no special attack conditions are required beyond holding authenticated access to the chat interface. EPSS data was not provided in the input, so no empirical exploitation-probability estimate is available; likelihood is therefore inferred from CVSS metrics alone. The CVE is not in CISA KEV and no public POC repository has been identified, meaning no confirmed active exploitation or weaponized exploit code is known at time of analysis. The practical impact ceiling is bounded: successful exploitation yields partial internal reconnaissance (schema, SQL, policy names) rather than credentials, tokens, or full data extraction. The exploitability is constrained by the requirement for an authenticated session and the need to identify a tool invocation that can be steered into a raising code path - opportunistic automated exploitation is unlikely. Integrity and availability impacts do not apply. The CVSS score is consistent with the description; no conflicting signals were observed in the available data. |
| Exploit ScenarioDerived | An authenticated user of an ash_ai-powered chat application identifies a database search or resource-query tool and submits arguments crafted to trigger an Ecto constraint violation - for example, referencing a non-existent column or violating a unique index. The tool callback raises an Ecto exception whose message includes the raw SQL and internal table name (e.g., 'column "password_hash" does not exist. query: SELECT ... FROM "internal"."users"'); Exception.message/1 serializes this verbatim into the JSON tool result, which the model relays to the user. The attacker now holds schema and table-name intelligence suitable for reconnaissance of further SQL injection or privilege escalation paths. No public exploit code has been identified. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Unfiltered exception serialization in ash_ai 0.6.0-0.x leaks internal application details - database schema, raw SQL fragments, policy module names - to authenticated chat users via the LLM conversation stream. AshAi.ToolLoop and AshAi.Tools used Elixir's Exception.message/1 verbatim to encode any raised tool exception into the tool-result payload, which the language model then relayed to the requesting user. Any authenticated user able to steer tool arguments into a code path that raises an exception could extract sensitive internal reconnaissance data; ash_ai 1.0.0 closes the gap by routing all tool exceptions through a safe formatter. No public exploit code and no CISA KEV listing have been identified at time of analysis.
RemediationAI
Upgrade ash_ai to version 1.0.0 or later, which applies commit c68dfbdb220426dc015b58379e95bde8e9f0995a. This commit replaces Exception.message/1 with AshAi.Tool.Errors.format/1 in both AshAi.ToolLoop and AshAi.Tools, and eliminates the inspect/1 catch-all path in tools.ex. The vendor advisory at https://github.com/ash-project/ash_ai/security/advisories/GHSA-5747-6mpw-6m9c is the authoritative remediation reference. If immediate upgrade is not feasible, the most actionable compensating control is to restrict the AI chat interface to fully trusted internal operators only - this reduces the pool of principals who could trigger exception-leaking tool calls, though it does not eliminate the vulnerability. A secondary compensating measure is to audit each registered tool callback and Ash lifecycle hook to ensure exceptions are caught, sanitized, and returned as generic errors before reaching the tool-result layer; this is operationally fragile and should be treated as a temporary measure only. Neither workaround substitutes for patching.
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
ash_ai is an Elixir library (CPE: cpe:2.3:a:ash-project:ash_ai) that integrates LLM and AI capabilities into applications built on the Ash resource framework. The root cause is CWE-209 (Generation of Error Message Containing Sensitive Information). Two modules were affected: AshAi.ToolLoop (tool_loop.ex) and AshAi.Tools (tools.ex). Both used Exception.message/1 to serialize any exception raised during tool callback or lifecycle hook execution into a JSON-encoded tool-result string, which was appended to the ongoing conversation as a {:tool_result, ...} stream event and forwarded to the model. Because Ash adapters (primarily Ecto) and Ash authorization policies embed rich diagnostic context in exception messages - table names, column names, raw SQL, policy module paths - these details were injected verbatim into the chat thread. The patch (commit c68dfbdb) substitutes AshAi.Tool.Errors.format/1 for Exception.message/1 in both modules, and replaces the catch-all inspect/1 fallback in tools.ex with the static string 'Tool execution failed', eliminating all raw exception propagation paths.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable via chat interface requiring only an authenticated session (PR:L); confidentiality impact is partial (internal error text only); no integrity or availability effect applies.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_ai discloses internal error text to chat users.
In AshAi.ToolLoop and AshAi.Tools, an exception raised while executing a tool was serialized verbatim with Exception.message/1 into the tool-result content. That content is appended to the conversation, emitted as a {:tool_result, ...} stream event, and sent back to the model, which typically relays it to the user. No filtering happened first, so anything raised inside a tool callback or lifecycle hook (database constraint messages, adapter errors, query fragments, policy or validation internals) was echoed as-is. A chat user who can steer tool arguments into a raising code path receives the raw internal text. The fix routes raised tool errors through the same safe formatter used for other tool errors.
This issue affects ash_ai: from 0.6.0 before 1.0.0.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Remote code execution in ash_ai (versions 0.1.0 through pre-1.0.0) allows unauthenticated network attackers to execute a
DNS-rebinding protection in AshAi.Mcp.Server (ash_ai 0.8.0-0.x) is bypassable because the default origin check trusts th
Authorization bypass in AshAi (ash_ai) versions 0.6.0 through pre-1.0.0 allows any authenticated tool caller to update o
Credential leakage in ash_ai (versions 0.1.0 through before 1.0.0) exposes embedding provider API keys and request inter
Infinite-loop denial-of-service in ash_ai's ToolLoop component (versions 0.6.0 through <1.0.0) allows an attacker who ca
Field policy bypass in ash_ai (versions 0.1.0 through < 1.0.3) allows authenticated, low-privilege actors to read per-ac
EUVD-2026-68308
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB