PT-2026-84079 · Unknown · Ash Typescript
CVSS v4.0
2.3
Low
| Vector | AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Name of the Vulnerable Software and Affected Versions
ash typescript versions 0.15.0 through 0.17.x
Description
An Open Redirect issue exists where an attacker controlling a path-parameter value can redirect a generated client's request and its associated credentials to an unintended route or an external origin. This occurs because URL builders in
lib/ash typescript/typed controller/codegen/route renderer.ex use bare template interpolation for :param placeholders without calling encodeURIComponent, allowing raw values to reach executeTypedControllerRequest. Specifically, values containing ../ are normalized by the fetch URL resolver to reach different routes, while ? or # can truncate paths to smuggle or override query parameters. If a route path begins with a parameter, a value like /evil.example.com/x creates a protocol-relative URL, sending requests and TypedControllerConfig credentials to an attacker-controlled host. The get path param type/2 function only emits a TypeScript type that is erased at runtime, providing no constraint on the value.Recommendations
Update ash typescript to version 0.18.0 or later.
Exploit
Fix
Open Redirect
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Ash Typescript