CVE-2026-77950: RPC error handler fails open in AshTypescript, disclosing unredacted errors

Published Sep 1, 2026
·
Updated

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ashtypescript allows an unauthenticated attacker to receive unredacted internal error data by provoking an error shape the configured error handler does not match.

applyerrorhandler/3 in lib/ashtypescript/rpc/errors.ex is the only hook an application has for redacting or suppressing errors before they reach the client, with a nil return dropping the error entirely. Its rescue clause logs a warning and then returns the original, pre-handler error map. Error handlers are conventionally written as pattern-matching functions over expected error shapes, so an unmatched shape raises FunctionClauseError and the raw transformed error, including any secrets carried in vars, is emitted instead. An intent to suppress an error becomes an intent to publish it. The rescue catches exceptions only, so a handler that throws or exits still propagates.

This issue affects ashtypescript: from 0.8.0 before 0.18.0.

Affected Software

1 affected component
ash-project/ash_typescript>=undefined, <0.18.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ash-project ash_typescript to a version that resolves this vulnerability.

    Fixed in 0.18.0
  2. Configuration

    In apply_error_handler/3, return nil to drop the error entirely when the error could contain sensitive information, instead of logging and returning the original pre-handler error map.

    ash_typescript (apply_error_handler/3 in lib/ash_typescript/rpc/errors.ex) error_handler_return_behavior = nil
  3. Compensating control

    Ensure only authenticated/authorized clients can reach the RPC endpoints that may trigger the unmatched error-handler shape, since the vulnerability allows an unauthenticated attacker to provoke errors and receive unredacted internal error data.

Event History

Sep 1, 2026
CVE Published
via MITRE·02:08 AM
Data Sourced
via MITRE·02:08 AM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Applications using ash_typescript versions from 0.8.0 before 0.18.0 are affected when they rely on apply_error_handler/3 to redact or suppress RPC errors. The attacker does not need to authenticate.

2

What must an attacker do to obtain unredacted error data?

They must provoke an error whose shape does not match the configured error handler. A pattern-match failure raises FunctionClauseError, causing the rescue clause to return the original pre-handler error map to the client.

3

Does configuring an error handler to suppress errors prevent disclosure?

Not reliably in affected versions. Although a handler can return nil to drop an error, an unmatched error shape causes the handler to fail and the original error, potentially including secrets in vars, is emitted instead.

4

What is the immediate mitigation if upgrading is not possible?

Ensure configured error handlers handle unexpected error shapes rather than relying only on pattern-matching clauses. The provided data does not identify another built-in mitigation for the fail-open rescue behavior.

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