Description
URL Redirection to Untrusted Site ('Open Redirect') vulnerability in ash-project ash_typescript allows an attacker who controls a path-parameter value to redirect a generated client's request, and the credentials attached to it, to an unintended route or an external origin.

The URL builders in lib/ash_typescript/typed_controller/codegen/route_renderer.ex replace each :param placeholder with a bare template interpolation and never call encodeURIComponent, so the value reaches executeTypedControllerRequest raw. A value containing ../ is normalised away by the fetch URL resolver and reaches a different route, while ? or # truncates the path and can smuggle or override query parameters. For a route whose path begins with a parameter, a value such as /evil.example.com/x yields the protocol-relative URL //evil.example.com/x, sending the request and the credentials from TypedControllerConfig to an attacker-controlled host. Nothing constrains the value at runtime: get_path_param_type/2 emits only a TypeScript type, which is erased.

The query-string path is unaffected, since URLSearchParams.set encodes its own values.

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

Impact

Open redirect is possible when ash-typescript generates request URLs from path parameters that are never URL-encoded. The underlying code replaces each ":param" placeholder with raw interpolation, so a value containing path traversal or protocol‑relative syntax can redirect the client to an unintended host, optionally forwarding the request credentials. The flaw is a classic CWE‑601 Open Redirection weakness.

Affected Systems

Affected artifacts are the ash‑project ash_typescript library for JavaScript clients. Versions from 0.15.0 up to, but not including, 0.18.0 contain the unencoded path rendering logic. All builds of the library with those version ranges, identified by the cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:* , are impacted.

Risk and Exploitability

The CVSS base score is 2.3, indicating a low severity when viewed from a conventional perspective; no EPSS data is available and the issue is not listed in the CISA KEV catalog. The attack requires an attacker to supply a crafted path value, a capability that in many contexts is available to any requester of an API that relies on ash-typescript. Because the redirection can carry opaque credentials, there is a moderate risk of credential leakage to a malicious third‑party. The path parameter can be abused without additional privileges, so the zero‑trust stance recommends mitigating promptly.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ash-typescript to version 0.18.0 or later to apply the vendor fix.
  • Validate and encode any path‑parameter values before they are embedded in URLs, for example by using encodeURIComponent, to prevent unexpected redirects.
  • Implement outbound request monitoring and restrictions to detect and block unexpected redirects to domains outside the trusted network.

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 URL Redirection to Untrusted Site ('Open Redirect') vulnerability in ash-project ash_typescript allows an attacker who controls a path-parameter value to redirect a generated client's request, and the credentials attached to it, to an unintended route or an external origin. The URL builders in lib/ash_typescript/typed_controller/codegen/route_renderer.ex replace each :param placeholder with a bare template interpolation and never call encodeURIComponent, so the value reaches executeTypedControllerRequest raw. A value containing ../ is normalised away by the fetch URL resolver and reaches a different route, while ? or # truncates the path and can smuggle or override query parameters. For a route whose path begins with a parameter, a value such as /evil.example.com/x yields the protocol-relative URL //evil.example.com/x, sending the request and the credentials from TypedControllerConfig to an attacker-controlled host. Nothing constrains the value at runtime: get_path_param_type/2 emits only a TypeScript type, which is erased. The query-string path is unaffected, since URLSearchParams.set encodes its own values. This issue affects ash_typescript: from 0.15.0 before 0.18.0.
Title Unescaped path parameters in AshTypescript generated TypeScript client allow request redirection
First Time appeared Ash-project
Ash-project ash Typescript
Weaknesses CWE-601
CPEs cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Typescript
References
Metrics cvssV4_0

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


Subscriptions

Ash-project Ash Typescript
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

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

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

Link: CVE-2026-82731

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-82731

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-601

    URL Redirection to Untrusted Site ('Open Redirect')