🔍 CVE-2026-42793

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

🇰🇷 한글 설명

absinthe-graphql 라이브러리에서 공격자가 제어하는 GraphQL SDL을 파싱할 때 원자(atom) 테이블을 고갈시켜 서비스 거부(DoS)를 유발할 수 있는 취약점입니다. SDL 내의 디렉티브, 필드, 타입, 인자 이름이 가비지 컬렉션이 되지 않는 원자로 변환되면서 BEAM VM의 제한된 원자 테이블을 모두 소모하여 시스템을 중단시킵니다.

💡 쉬운 설명

공격자가 특수하게 조작된 데이터를 보내 컴퓨터의 메모리 관리 공간 중 하나인 '원자 테이블'을 가득 채워 시스템을 멈추게 만드는 공격입니다. 이로 인해 서버가 응답을 멈추거나 완전히 다운될 수 있습니다.

🇺🇸 원문 (English)

Allocation of Resources Without Limits or Throttling vulnerability in absinthe-graphql absinthe allows unauthenticated denial of service via atom table exhaustion when parsing attacker-controlled GraphQL SDL. Multiple Blueprint.Draft.convert/2 implementations in Absinthe's SDL language modules call String.to_atom/1 on attacker-controlled names from parsed GraphQL SDL documents, including directive names, field names, type names, and argument names. Because atoms are never garbage-collected and the BEAM atom table has a fixed limit (default 1,048,576), each unique name permanently consumes one slot. An attacker can exhaust the atom table by submitting SDL documents containing enough unique names, causing the Erlang VM to abort with system_limit and taking down the entire node. Any application that passes attacker-controlled GraphQL SDL through Absinthe's parser is exposed — for example, a schema-upload endpoint, a federation gateway that ingests remote SDL, or any developer tool that runs the parser over user-supplied documents. This issue affects absinthe: from 1.5.0 before 1.10.2.

📍 영향받는 시스템

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

⚔️ 공격 벡터

공격자가 고유한 이름을 가진 대량의 GraphQL SDL 문서를 전송하여 원자 테이블을 고갈시킴

🛡️ 대응 방법

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

🔧 검증 코드

출력된 버전이 1.10.2 미만(예: 1.5.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