🔍 CVE-2026-115887

7.5
CVSS Score
HIGH
2026-10-23
2026-10-30 19:18
✅ 완료

🇰🇷 한글 설명

GraphQL Scalars 라이브러리의 GraphQLPhoneNumber 스칼라(1.24.1 이상 2.0.1 미만)에서 정규식의 중첩된 숫자 수량자로 인해 특정 입력에 대해 지수적 백트래킹이 발생합니다. 이로 인해 인증 전 단계에서 짧은 요청만으로도 Node.js 이벤트 루프가 차단되어 서버가 정지될 수 있습니다. 2.0.1 버전에서 수정되었습니다.

💡 쉬운 설명

전화번호를 처리하는 부품에 잘못 설계된 검사 로직이 있어, 악의적으로 만든 짧은 요청 하나로 서버가 한동안 멈출 수 있습니다. 로그인 없이도 이 공격이 가능하다는 점이 위험합니다.

🇺🇸 원문 (English)

GraphQL Scalars is a library of custom GraphQL scalars for creating precise type-safe GraphQL schemas. From 1.24.1 until 2.0.1, GraphQLPhoneNumber in src/scalars/PhoneNumber.ts uses ambiguous nested digit quantifiers that backtrack exponentially when a PhoneNumber value contains a run of digits followed by a character that makes the match fail. GraphQL evaluates parseLiteral during document validation and parseValue during variable coercion before resolver authentication or authorization, so a small unauthenticated request can block the Node.js event loop and stall the server process. serialize is also affected when unvalidated stored values are returned through the scalar. This issue is fixed in version 2.0.1.

📍 영향받는 시스템

GraphQL Scalars 1.24.1 이상 2.0.1 미만을 사용하는 Node.js GraphQL 서버

⚔️ 공격 벡터

PhoneNumber 스칼라에 숫자 연속 뒤에 매칭 실패 문자를 포함한 특수 입력을 담은 인증 없는 GraphQL 요청을 보내 정규식 백트래킹을 유발

🛡️ 대응 방법

@graphql-scalars/graphql-scalars 패키지를 2.0.1 이상으로 업데이트

🔧 검증 코드

출력된 버전이 2.0.1 이상이면 패치 완료, 1.24.1~2.0.0이면 취약하므로 업데이트 필요

Shell / Script
npm ls @graphql-scalars/graphql-scalars 2>/dev/null | grep graphql-scalars

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js