🇰🇷 한글 설명
Dgraph는 오픈소스 분산 GraphQL 데이터베이스입니다. 25.3.4 이전 버전에서는 checkUserPassword GraphQL 쿼리가 사용자 입력 비밀번호를 이스케이프 없이 DQL checkpwd() 쿼리에 직접 삽입하여 DQL 인젝션에 취약합니다. 이를 통해 공격자는 임의의 DQL 쿼리를 실행할 수 있습니다. 버전 25.3.4에서 이 문제가 패치되었습니다.
💡 쉬운 설명
Dgraph 데이터베이스에서 비밀번호 입력란에 특수 문자를 넣어 데이터베이스 명령을 몰래 실행할 수 있는 취약점입니다. 25.3.4 이상 버전으로 업데이트하면 해결됩니다.
🇺🇸 원문 (English)
Dgraph is an open source distributed GraphQL database. Prior to version 25.3.4, the `checkUserPassword` GraphQL query in Dgraph is vulnerable to DQL (Dgraph Query Language) injection. User-supplied password values are interpolated directly into a DQL `checkpwd()` query via `fmt.Sprintf` without any escaping or parameterization. An attacker can inject a password containing a double-quote character to break out of the DQL string literal and append arbitrary DQL query blocks. Version 25.3.4 patches the issue.
📍 영향받는 시스템
Dgraph 25.3.4 미만 버전을 사용하는 GraphQL 데이터베이스 서버
⚔️ 공격 벡터
비밀번호 필드에 큰따옴표를 포함한 값을 입력해 DQL 문자열을 탈출하고 임의의 DQL 쿼리를 추가 실행
🛡️ 대응 방법
Dgraph를 25.3.4 이상 버전으로 업그레이드
🔧 검증 코드
출력된 버전 번호가 25.3.4 미만이면 취약하며, 25.3.4 이상이면 패치된 것입니다.
dgraph version 2>/dev/null | grep -i 'dgraph version'