CVE-2026-81318 in ash_sql
요약
\~에 의해 VulDB • 2026. 08. 30.
ash-project의 ash_sql에서 잘못된 인증(Authentication) 취약점이 발견되어, 스키마 기반 다중 테넌트(multitenant) 애플리케이션 내 호출자가 다른 테넌트의 행(row)으로부터 계산된 집계 값을 수신할 수 있습니다.
집계가 distinct 쿼리 위에서 수행될 때, AshSql.AggregateQuery.add_single_aggs/5는 query.from.source만으로 외부 쿼리를 재구성하는데, 이는 {table, schema} 튜플만 포함하며 query.prefix나 query.from.prefix를 전달하지 않습니다. strategy(:context) 다중 테넌시 전략의 경우, 이 prefix들은 테넌트 스키마를 담고 있으므로, 재구성된 외부 쿼리는 repo의 기본(default) 스키마를 읽는 반면 내부 상관 하위 쿼리(correlated subquery)는 여전히 테넌트 스키마를 읽고 있으며, 두 쿼리는 주 키(primary key)에서만 조인됩니다. 이로 인해 집계 및 prefix가 없는 바인딩에서 추가된 모든 관계 조인은 잘못된 테넌트의 행을 대상으로 계산됩니다. 반면 인접한 limit 및 exists 분기는 쿼리를 subquery/1로 감싸서 prefix를 보존합니다.
이 이슈는 ash_sql에 영향을 미치며, 0.7.1 이전 버전의 0.1.0부터 해당됩니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.