Description
Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.

When a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.

This contradicts the module's own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes.

This issue affects ash_typescript: from 0.15.0 before 0.18.0.
Published: 2026-09-01
Score: 6.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw occurs when a typed‑controller route handler returns a value other than a %Plug.Conn{}. The request handler interpolates an inspect of the value into the error response. This causes internal application data—such as hashed passwords, tokens, and tenant identifiers—to be exposed in the HTTP 500 response body, exposing sensitive information. The vulnerability is based on CWE‑209, which concerns the improper handling of sensitive information in error messages.

Affected Systems

Affected software is the AshTypescript library from the ash‑project, specifically versions 0.15.0 through 0.17.x. Any application that uses these versions and defines typed‑controller route handlers is at risk.

Risk and Exploitability

The CVSS score of 6.3 indicates moderate severity. No EPSS value is available, and the issue is not listed in the CISA KEV catalog. The attack vector is essentially local within the application’s HTTP interface; an unauthenticated attacker can trigger an error by sending a request that causes a non‑%Plug.Conn{} return value, resulting in a 500 response that leaks sensitive data. The vulnerability requires only triggering a normal application flow and does not need any additional privileges.

Generated by OpenCVE AI on September 1, 2026 at 03:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update ash‑typescript to 0.18.0 or later, which removes the insecure error interpolation
  • Apply the patch from commit dec80e29543f96e43eeece8501376562f17ac638 if an upgrade is not immediately possible
  • Ensure all typed‑controller route handlers return a %Plug.Conn{} or handle errors explicitly so that no unexpected values are returned
  • If upgrading is delayed, configure AshTypescript.typed_controller_show_raised_errors?/0 to false to prevent sensitive data from appearing in error responses
  • Review and audit existing route handlers for any that may return structs or tuples other than %Plug.Conn{} and refactor them accordingly

Generated by OpenCVE AI on September 1, 2026 at 03:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 02:45:00 +0000

Type Values Removed Values Added
Description Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body. When a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller. This contradicts the module's own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes. This issue affects ash_typescript: from 0.15.0 before 0.18.0.
Title Route handler return value echoed into AshTypescript error response
First Time appeared Ash-project
Ash-project ash Typescript
Weaknesses CWE-209
CPEs cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Typescript
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Ash-project Ash Typescript
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-01T02:09:22.784Z

Reserved: 2026-08-31T00:59:10.001Z

Link: CVE-2026-82733

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-01T03:16:53.373

Modified: 2026-09-01T03:16:53.373

Link: CVE-2026-82733

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T03:30:04Z

Weaknesses
  • CWE-209

    Generation of Error Message Containing Sensitive Information