Executive brief
ash_typescript is a library that handles RPC error handling and transformation in applications built with the Ash framework. An unauthenticated attacker can receive unredacted internal error messages containing sensitive information (such as secrets in variables) by provoking an error shape that doesn't match the application's configured error handler pattern, causing the raw error data to be exposed to the client instead of being redacted or suppressed.
Technical details
The vulnerability is an information disclosure flaw in the apply_error_handler/3 function in lib/ash_typescript/rpc/errors.ex. Error handlers are typically implemented as pattern-matching functions expecting specific error shapes; when an unmatched error shape is encountered, it raises FunctionClauseError, and the rescue clause logs a warning then returns the original untransformed error map—including any secrets in variables—to the client. The root cause is that the rescue catches exceptions only, not throws or exits, and pattern-matching failures in handlers become error publication vectors instead of suppression. An unauthenticated attacker can trigger this by sending a request that generates an unexpected error shape. The issue affects ash_typescript from version 0.8.0 before 0.18.0.
Affected products
- ash-project ash_typescript 0.8.0 before 0.18.0
Timeline
- 2026-09-01: disclosed