CVE-2026-67579 in ash
요약
\~에 의해 VulDB • 2026. 08. 12.
ash-project의 ash에서 신뢰할 수 없는 데이터 역직렬화 취약점이 발견되어, 인증되지 않은 공격자가 위조된 키셋 페이지네이션 커서를 통해 필터 표현식을 주입하고 SQL 인젝션 또는 코드 실행을 유발할 수 있습니다.
키셋 페이지네이션이 적용된 읽기 작업은 `lib/ash/page/keyset.ex`의 `decode_values/2` 함수에서 클라이언트가 제공한 `page[:after]` 또는 `page[:before]` 커서를 `non_executable_binary_to_term/2`를 사용하여 `[:safe]` 옵션으로 디코딩합니다. 이 가드(guard)는 새로 생성된 atoms, funs(함수), ports를 차단하지만, 실행 중인 Ash 애플리케이션에 이미 interned되어 있는 atom들로 구성된 struct는 허용됩니다. 따라서 디코딩된 `%Ash.Query.Call{}` 표현식이 생존하여 `do_filters/4`에서 키셋 필터의 비교 값으로 삽입되고 평가됩니다. 커서가 Ash.Expr 매크로를 우회하므로, 런타임은 이를 거부할 수 있는 private?/public? 가드를 적용하지 않습니다.
AshPostgres에서는 주입된 조각이 SQL 쿼리에 인라인되어 삽입되며, ETS 및 Simple 데이터 레이어에서는 임의 함수 호출로서 프로세스 내에서 평가됩니다.
본 이슈는 ash 1.17.0부터 3.31.3 미만 버전에서 영향을 받습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.