🇰🇷 한글 설명
graphql-ruby 라이브러리에서 악의적인 스키마 정의를 로드할 때 원격 코드 실행(RCE)이 발생할 수 있는 취약점입니다. 신뢰할 수 없는 소스로부터 JSON 형태의 스키마를 불러오는 시스템은 이 공격에 노출될 수 있습니다.
💡 쉬운 설명
해커가 조작된 데이터를 보내면 서버가 이를 잘못 해석하여 해커의 명령어를 실행하게 만드는 보안 구멍입니다. 외부에서 가져온 GraphQL 설정 파일을 그대로 믿고 사용할 때 발생합니다.
🇺🇸 원문 (English)
graphql-ruby is a Ruby implementation of GraphQL. Starting in version 1.11.5 and prior to versions 1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, and 2.3.21, loading a malicious schema definition in `GraphQL::Schema.from_introspection` (or `GraphQL::Schema::Loader.load`) can result in remote code execution. Any system which loads a schema by JSON from an untrusted source is vulnerable, including those that use GraphQL::Client to load external schemas via GraphQL introspection. Versions 1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, and 2.3.21 contain a patch for the issue.
📍 영향받는 시스템
graphql-ruby 1.11.5 ~ 1.11.7, 1.12.x < 1.12.25, 1.13.x < 1.13.24, 2.0.x < 2.0.32, 2.1.x < 2.1.14, 2.2.x < 2.2.17, 2.3.x < 2.3.21
⚔️ 공격 벡터
신뢰할 수 없는 소스로부터 제공된 악의적인 JSON 스키마를 GraphQL::Schema.from_introspection 또는 GraphQL::Schema::Loader.load를 통해 로드함
🛡️ 대응 방법
graphql-ruby를 패치된 버전(1.11.8, 1.12.25, 1.13.24, 2.0.32, 2.1.14, 2.2.17, 2.3.21 이상)으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 graphql-ruby의 버전을 확인하여 취약한 버전 범위에 포함되는지 체크합니다.