🔍 CVE-2026-43967

7.5
CVSS Score
HIGH
2026-05-08
2026-06-17 10:50
✅ 완료

🇰🇷 한글 설명

absinthe-graphql 라이브러리의 fragment 이름 중복 검증 과정에서 발생하는 비효율적인 알고리즘 복잡도 취약점입니다. 공격자가 조작된 GraphQL 쿼리를 전송할 경우, 서버가 중복 검증을 위해 과도한 연산을 수행하게 되어 서비스 거부(DoS) 상태에 빠질 수 있습니다.

💡 쉬운 설명

공격자가 아주 복잡하게 꼬인 질문지를 보내면, 서버가 그 질문지를 검사하다가 계산량이 너무 많아져서 멈춰버리는 문제입니다. 이로 인해 일반 사용자들이 서비스를 이용하지 못하게 될 수 있습니다.

🇺🇸 원문 (English)

Inefficient Algorithmic Complexity vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via quadratic fragment-name uniqueness validation. 'Elixir.Absinthe.Phase.Document.Validation.UniqueFragmentNames':run/2 iterates over all fragments and for each one calls duplicate?/2, which evaluates Enum.count(fragments, &(&1.name == name)) — a full linear scan of the fragment list. The result is O(N²) comparisons per document, where N is the number of fragment definitions supplied by the caller. Because input.fragments is built directly from the GraphQL query body, N is fully attacker-controlled. A minimum-size fragment definition is roughly 16 bytes, so a ~1 MB document carries ~60,000 fragments and forces ~3.6 × 10⁹ comparisons inside this single validation phase. No authentication, schema knowledge, or special configuration is required. This issue affects absinthe: from 1.2.0 before 1.10.2.

📍 영향받는 시스템

absinthe: 1.2.0 버전부터 1.10.2 미만 버전

⚔️ 공격 벡터

인증되지 않은 공격자가 대량의 fragment 정의를 포함한 악의적인 GraphQL 쿼리를 전송하여 서버 자원을 고갈시킴

🛡️ 대응 방법

absinthe 라이브러리를 1.10.2 이상의 최신 버전으로 업데이트하십시오.

🔧 검증 코드

출력된 absinthe의 버전이 1.10.2 미만(예: 1.2.0 ~ 1.10.1)인지 확인하십시오.

Shell / Script
mix deps info absinthe | grep -E 'absinthe \([0-9]+\\.[0-9]+\\.[0-9]+\\)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H