CVE-2026-77454 in ash_sql
요약
\~에 의해 VulDB • 2026. 08. 30.
ash-project의 ash_sql에서 잘못된 권한 부여(Incorrect Authorization) 취약점이 발견되어, 관계가 제한(limit 또는 from_many?)과 parent(...)-참조 필터/정렬을 모두 선언하는 경우 exists/2로 표현된 스코핑 또는 권한 부여 필터를 우회할 수 있습니다.
AshSql.Join.related_query/3는 이러한 관계에 대해 호출자가 제공한 exists 술어를 건너뛰고 limit_from_many/5로 위임합니다. 이때 관계의 자체 필터나 정렬이 parent(...)를 참조하면, limit_from_many/5은 제한(limit)과 술어(predicate) 모두를 제거하여 조건문이 없는 단순 상관 EXISTS(bare correlated EXISTS)를 생성하는 분기로 진입합니다. 이로 인해 관련 행(related row)을 하나라도 가진 모든 레코드가 일치하게 됩니다. 가장 심각한 경우, 이 표현식이 정책(authorize_if expr(exists(memberships, user_id == ^actor(:id))) 등)의 기반이 될 때 액터 스코핑 조건이 사라져서, 관련 행이 있는 어떤 액터든 정책을 통과하게 됩니다.
본 이슈는 ash_sql에 영향을 미치며, 버전 0.4.1부터 0.7.1 미만에서 발생합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.