CVE-2026-94201 in Ash정보

요약

\~에 의해 VulDB • 2026. 10. 05.

Ash는 :atom-typed 속성을 문자열로 저장하고 이를 문자열로서 비교합니다. 이러한 속성이 필터에서 참조될 때, 비교 값은 Ash.Type.Atom을 통해 강제 변환(coerce)됩니다. 해당 타입에 coerce/2 콜백이 정의되어 있지 않아서 기본값(cast_input/2)으로 폴백되었으며, 이는 속성이 unsafe_to_atom?: true 제약 조건으로 구성되어 있을 경우 String.to_atom/1을 호출합니다.

따라서 공격자가 제어하는 문자열로 이러한 속성을 필터링하면 고유한 값마다 새로운 영구 원자(atom)가 인터닝(interned)됩니다. 원자는 가비지 컬렉션의 대상이 되지 않으며 BEAM은 원자 테이블에 상한선을 두므로, public하고 필터 가능한 :atom 속성(unsafe_to_atom?: true로 선언됨)에 대한 필터 값을 제공할 수 있는 행위자가 있다면 원자 테이블을 고갈시켜 노드를 충돌시킬 수 있습니다(서비스 거부). AshPaperTrail은 대표적인 예시입니다: 해당 패키지의 버전 리소스는 기본적으로 unsafe_to_atom?: true가 설정된 public하고 필터 가능한 version_action_name atom 속성을 노출합니다.

이 수정사항은 Ash.Type.Atom에 원자를 인터닝하지 않는 coerce/2를 추가하여 해결했습니다 — 비교 값은 타입이 문자열로 저장되고 비교되므로 문자열 그대로 유지됩니다. 액션 입력(cast_input/2, 이는 여전히 unsafe_to_atom?를 존중함)에서 속성을 설정하는 동작은 변경되지 않았습니다.

이 문제는 ash: 3.5.1부터 3.34.3 미만 버전까지 영향을 미칩니다.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

책임이 있는

EEF

예약하다

2026. 09. 24.

모더레이션

수락

항목

VDB-413780

EPSS

0.00000

출처

Want to know what is going to be exploited?

We predict KEV entries!