ZeroHour

CVE-2026-75760

niche

Sensitive credential disclosure via error messages in ash-project ash_ai

CVSS 4.0
7.1 high
EPSS
<1%p21
Published
()
Modified
AI analysis

ash-project ash_ai, an Ash Framework extension for Elixir that adds AI capabilities, leaks unsanitized embedding-provider error details to API callers in versions from 0.1.0 before 1.0.0. When a user submits oversized or malformed content that makes the embedding provider call fail, AshAi.Changes.Vectorize adds a changeset error embedding the raw inspected error term, which AshJsonApi and AshGraphql render back to the caller. Because the error term is not sanitized, it can carry the provider request URL, the provider's response body, and — for HTTP clients that keep the request in the error struct — the outbound Authorization header containing the provider API key, letting an authenticated caller harvest the application's embedding-provider credentials. Any application running an affected ash_ai version with Vectorize-enabled actions exposed through AshJsonApi or AshGraphql is affected; the flaw is rated 7.1 (High) under CVSS 4.0 with high confidentiality impact. No public proof-of-concept, CISA KEV listing, or observed in-the-wild exploitation is known, and EPSS puts 30-day exploitation probability at roughly 0.3%.

What to do: Upgrade ash_ai to 1.0.0 or later, which logs the raw provider error server-side and returns only a generic message to callers. If upgrading is not immediately possible, suppress or sanitize :invalid-class changeset error messages returned through AshJsonApi/AshGraphql and restrict Vectorize-enabled actions to trusted users, and rotate any embedding-provider API keys that may have been disclosed to callers.

Affected
ash-project ash_ai>= 0.1.0 and < 1.0.0
Estimated exposure
nichelikely hundreds to low thousands of Elixir applications — ash_ai is a niche Hex package tied to the Ash Framework with no public install counts in the supplied data, so the estimate reflects its limited, specialized adoption among Elixir apps that expose vectorized Ash resources via AshJsonApi or…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_ai discloses provider request state and credentials in a user-facing validation error. In AshAi.Changes.Vectorize, when the embedding provider call fails the change added a changeset error whose message inspected the raw error term (An error occurred while generating embeddings: #{inspect(error)}). A plain-string add_error produces an Ash.Error.Changes.InvalidChanges in the :invalid class, which AshJsonApi and AshGraphql render back to the caller. The embedding client's error term is not sanitized, so it can carry the request URL, the provider response body, and, for HTTP clients that keep the request in the error struct, the outbound Authorization header with the provider API key. Failures are attacker-reachable via oversized or malformed vectorized content. The fix logs the raw error and returns a generic message. This issue affects ash_ai: from 0.1.0 before 1.0.0.

Weakness
CWE-209
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.