{"id":"CVE-2026-82730","summary":"Authorization-redacted field values disclosed through AshTypescript result normalization","details":"Incorrect Authorization vulnerability in ash-project ash_typescript allows an unauthorized RPC caller to read attribute values that Ash field policies denied.\n\nWhen 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.\n\nThe 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.\n\nThis issue affects ash_typescript: from 0.11.0 before 0.18.0.","aliases":["EEF-CVE-2026-82730","GHSA-6929-rjmh-4x62"],"modified":"2026-09-02T03:47:32.226438487Z","published":"2026-09-01T02:09:01.851Z","database_specific":{"unresolved_ranges":[{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"9cade7661a01b6e4d940386f482f48d148dbb1e6"},{"fixed":"aa7f9f1967b0bec806ac1156142267e805d70a55"}]}],"cna_assigner":"EEF","cwe_ids":["CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82730.json"},"references":[{"type":"WEB","url":"https://cna.erlef.org/cves/CVE-2026-82730.html"},{"type":"WEB","url":"https://github.com"},{"type":"WEB","url":"https://osv.dev/vulnerability/EEF-CVE-2026-82730"},{"type":"WEB","url":"https://repo.hex.pm"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/82xxx/CVE-2026-82730.json"},{"type":"ADVISORY","url":"https://github.com/ash-project/ash_typescript/security/advisories/GHSA-6929-rjmh-4x62"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-82730"},{"type":"FIX","url":"https://github.com/ash-project/ash_typescript/commit/aa7f9f1967b0bec806ac1156142267e805d70a55"},{"type":"PACKAGE","url":"https://github.com/ash-project/ash_typescript"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/ash-project/ash_typescript","events":[{"introduced":"a42177bfc4acd27bb2f25372da9b3de467d6bcae"},{"fixed":"808e4b17ee821a8dac98bda5bf01da0fe1b69d41"},{"fixed":"aa7f9f1967b0bec806ac1156142267e805d70a55"}],"database_specific":{"source":["DESCRIPTION","REFERENCES"],"extracted_events":[{"introduced":"0.11.0"},{"fixed":"0.18.0"}]}}],"versions":["v0.15.0","v0.15.3","v0.15.2","v0.15.1","v0.14.4","v0.14.3","v0.14.2","v0.14.1","v0.14.0","v0.13.2","v0.13.1","v0.13.0","v0.12.1","v0.12.0","v0.11.6","v0.11.5","v0.11.4","v0.11.3","v0.11.2","v0.11.1","v0.11.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-82730.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"}]}