CVE-2026-81636 in ash_graphql
요약
\~에 의해 VulDB • 2026. 08. 30.
ash-project의 ash_graphql에서 제한 또는 스로틀링 없이 리소스 할당 취약점이 발생하여, 인증되지 않은 클라이언트가 구성된 GraphQL 쿼리 복잡도 한계를 우회하고 무제한 데이터베이스 읽기를 강제할 수 있습니다.
AshGraphql.Graphql.Resolver.query_complexity/3 함수는 인자 맵에 :limit(오프셋 페이지네이션)이 포함된 경우에만 자식 복잡도를 요청된 페이지 크기로 곱합니다. Relay 연결 및 키세트 페이지네이션은 first와 last를 사용하며, 이는 해당 조건절과 일치하지 않아 child_complexity + 1을 반환하는 catch-all 절로 넘어갑니다. 따라서 posts(first: 500) { edges { node { comments(first: 500) { ... } } } }와 같은 중첩된 Relay 쿼리는 전체 fan-out(확산)을 materialize하면서도 trivially cheap하게 점수가 매겨져, Absinthe의 max_complexity 한계를 통과합니다. 이 한계는 동일한 limit 기반 쿼리를 거부합니다. 수정 사항에는 action의 페이지 크기로 클램프된 first 및 last 절이 추가됩니다.
이 문제는 ash_graphql 0.16.23 미만부터 1.11.0 미만에 영향을 미칩니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.