CVE-2026-82730 in ash_typescript
요약
\~에 의해 VulDB • 2026. 09. 01.
ash-project의 ash_typescript에서 잘못된 권한 부여(Incorrect Authorization) 취약점이 발견되어, 비인가된 RPC 호출자가 Ash 필드 정책으로 인해 접근이 거부되어야 할 속성 값을 읽을 수 있습니다.
필드 정책이 특정 속성을 차단할 경우, Ash는 %Ash.ForbiddenField{}를 대체 값으로 사용하며, 이는 임베디드 리소스가 쓰기 가능해야 한다는 요구사항에 따라 실제 값(original_value)을 유지합니다. 또한 이 값은 Inspect 프로토콜에서는 숨겨지지만 완전히 제거되지는 않습니다. AshTypescript.Rpc.ResultProcessor는 템플릿 기반 경로를 통해 이러한 마커를 nil로 변환하지만, lib/ash_typescript/rpc/result_processor.ex의 normalize_primitive/1 함수에는 해당 케이스에 대한 처리 구문이 없었습니다. 그 결과, 마커가 Map.from_struct/1을 호출하여 모든 키(original_value 포함)를 직렬화하는 제네릭 구조체 분기 경로로 전달되었습니다. 이로 인해 차단된 값이 자신의 차단을 나타내는 마커 내부에서 호출자에게 반환됩니다.
가장 간단한 트리거 조건은 임베디드 리소스를 맵(map)으로 반환하는 액션이며, 이는 빈 템플릿과 함께 normalize_resource_struct/2를 통해 처리됩니다. 또한 normalize_value_for_json/1 함수는 동일한 경로로 이어지는 공개된 비보호(unprotected) 진입점입니다.
이 문제는 ash_typescript 0.18.0 미만의 버전(0.11.0 이상)에 영향을 미칩니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.