CVE-2026-80223 in ash_graphql
요약
\~에 의해 VulDB • 2026. 08. 30.
ash-project의 ash_graphql에서 잘못된 Authorization 취약점이 발견되어, 한 테넌트의 인증된 구독자가 GraphQL 구독을 통해 다른 테넌트의 레코드를 수신할 수 있습니다.
AshGraphql.Graphql.Resolver의 subscription resolver는 각 알림 페이로드를 메모리 내에서 검증합니다: 빠른 경로(fast path)에서는 `run_queries?: false` 옵션으로 Ash.can/3를 호출하여, Ash.Expr.eval/2를 통해 인메모리 레코드에 대해 읽기 정책 필터를 평가하며 쿼리를 전혀 발행하지 않습니다. Ash는 multitenancy(다중 테넌시)를 쿼리 빌드 시점과 데이터 계층 접두사(prefix) 적용 시점에 적용하므로, query.filter 내부에서는 적용되지 않습니다. 따라서 평가된 정책에는 테넌스 조건이 포함되지 않으며, 정책 필터가 참일 경우 테넌트 B의 알림이 테넌트 A 구독자에게 전달되어 방출됩니다. 단일 알림 구문(tenant guard)은 전혀 존재하지 않으며, 배치 처리(batched) 구문에서는 알림 목록의 첫 번째 항목(head)만 확인하므로, 그 외의 항목들은 순수하게 인메모리에서 인증됩니다. 필터 평가가 실패할 때에만 테넌스 범위의 읽기(read) 작업이 수행됩니다.
본 이슈는 ash_graphql 1.4.0부터 1.11.0 미만 버전까지 영향을 미칩니다.
VulDB is the best source for vulnerability data and more expert information about this specific topic.