GHSA-vhmw-fwrr-r6c6: AshAi sends unrecognized tool errors verbatim to MCP clients and the model, disclosing internal details

Published Nov 9, 2026
·
Updated

Summary

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ashai allows a caller of an AshAi tool to read internal error details, including module names and data values, by making a tool call fail.

AshAi.ToToolError gained an implementation for Ash.Error.Unknown.UnknownError that returns the error's error field as is, and AshAi.Tool.Errors.format/1 sends that text to MCP clients (tool calls and resource reads in AshAi.Mcp.Server) and to the model in AshAi.ToolLoop. Ash stores the full Exception.format/2 output of a raised exception, or inspect/1 of a bare {:error, term} return, in that field. A tool result that cannot be JSON-encoded raises a Protocol.UndefinedError whose text includes the inspected value, which can be a whole record with fields the tool never returns. None of these errors were logged. The fix logs them under an error id and returns only that id to the caller.

This issue affects ashai: from 1.5.0 before 1.5.1.

Impact

A caller with tool access sends unexpected or malformed tool arguments until a tool fails, then reads the returned error text to learn internal module and function names and the values the code failed on.

Affected Software

1 affected componentFixes available
erlang/ash_ai>=1.5.0<1.5.1
1.5.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade erlang/ash_ai to a version that resolves this vulnerability.

    Fixed in 1.5.1
  2. Upgrade

    Upgrade ash_ai to a version that resolves this vulnerability.

    Fixed in 1.5.1

Event History

Nov 9, 2026
CVE Published
via OSV·01:03 PM
Data Sourced
via OSV·01:03 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments and users are exposed?

AshAi versions from 1.5.0 before 1.5.1 are affected. Exploitation requires a caller that has access to an AshAi tool.

2

What does an attacker need to do to obtain leaked data?

The caller sends unexpected or malformed tool arguments until a tool call fails, then reads the returned error text. A result that cannot be JSON-encoded can trigger a Protocol.UndefinedError whose message includes an inspected value.

3

What information can be disclosed through the error output?

The returned text can disclose internal module and function names and data values. In some cases, it can include an entire record and fields that the tool would not normally return.

4

Can prior exploitation be identified from application logs?

The affected errors were not logged. The fix logs errors under an error ID and returns only that ID to the caller, but the provided information does not describe retrospective detection for previously exposed errors.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203