CVE-2026-82730

Authorization-redacted field values disclosed through AshTypescript result normalization

HIGH
8.2
CVSS Score
Published: September 1, 2026 at 02:09 AM UTC
Updated: September 1, 2026 at 09:31 PM UTC
1 product affected across 1 vendorAshTypescript

Using ash_typescript by ash-project?

Get instant alerts when new vulnerabilities affect ash_typescript - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH8.2
Exploit prediction
EPSS 0.5%
SSVC
PoC

Description

Incorrect Authorization vulnerability in ash-project ash_typescript allows an unauthorized RPC caller to read attribute values that Ash field policies denied. When a field policy denies an attribute, Ash substitutes %Ash.ForbiddenField{}, which retains the real value in original_value because embedded resources must remain writable, and hides it from Inspect rather than removing it. AshTypescript.Rpc.ResultProcessor strips these markers to nil on its template-driven paths, but normalize_primitive/1 in lib/ash_typescript/rpc/result_processor.ex had no such clause, so a marker fell through to the generic struct branch which calls Map.from_struct/1 and serializes every key, original_value included. The denied value is returned to the caller inside the marker that represents its own denial. The simplest trigger is an action returning an embedded resource as a map, which routes through normalize_resource_struct/2 with an empty template. normalize_value_for_json/1 is a public, unguarded entry point to the same path. This issue affects ash_typescript: from 0.11.0 before 0.18.0.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0.11.0 ≤ v < 0.18.00.11.09cade7661a01b6e4d940386f482f48d148dbb1e6
Vendor states this is fixed in aa7f9f1967b0bec806ac1156142267e805d70a55 (fixed)
Affected range stops below 0.18.0, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCPoCNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

8.2HIGHEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-863

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card