🇰🇷 한글 설명
webonyx/graphql-php 라이브러리의 특정 함수에서 재귀 호출 제한 없이 파싱을 수행하여 발생하는 취약점입니다. 공격자가 깊게 중첩된 쿼리를 전송할 경우 PHP 프로세스의 스택을 고갈시켜 서비스 거부(DoS)를 유발할 수 있습니다. 이 문제는 15.32.3 버전에서 수정되었습니다.
💡 쉬운 설명
복잡하게 꼬인 명령어를 보내서 웹 서버의 처리 능력을 마비시키는 공격입니다. 서버가 명령어를 해석하다가 과부하가 걸려 갑자기 꺼져버릴 수 있습니다.
🇺🇸 원문 (English)
webonyx graphql-php is a PHP implementation of the GraphQL specification. Prior to 15.32.3, GraphQL\Language\Parser performs recursive descent without a recursion limit in parseSelectionSet, parseValueLiteral, and parseTypeReference. A remote attacker can submit deeply nested selection sets, object or list values, or list types that exhaust the PHP process stack during pre-validation parsing, before query validation and complexity controls run. The resulting SIGSEGV can terminate PHP-FPM workers or long-running Swoole, RoadRunner, ReactPHP, or CLI processes and cannot be caught by application-level exception handling. This issue is fixed in version 15.32.3.
📍 영향받는 시스템
webonyx/graphql-php 15.32.3 미만 버전
⚔️ 공격 벡터
악의적으로 설계된 깊은 중첩 구조의 GraphQL 쿼리 전송
🛡️ 대응 방법
graphql-php 라이브러리를 15.32.3 이상 버전으로 업데이트
🔧 검증 코드
출력된 버전 정보가 15.32.3보다 낮은지 확인합니다.
composer show webonyx/graphql-php | grep 'versions'