🔍 CVE-2021-47748

9.8
CVSS Score
CRITICAL
2026-01-21
2026-01-21 18:16
✅ 완료

🇰🇷 한글 설명

Hasura GraphQL 1.3.3 버전에서 원격 코드 실행 취약점이 발견되었습니다. 이 취약점은 공격자가任意의 shell 명령을 실행할 수 있게 하며, 공격자는 SQL 쿼리 조작을 통해 시스템 명령을 PostgreSQL의 COPY FROM PROGRAM 기능을 이용하여 실행할 수 있습니다.

💡 쉬운 설명

Hasura GraphQL 1.3.3 버전은 원격 코드 실행 취약점이 있어 공격자가任意의 시스템 명령을 실행할 수 있습니다. 이는 SQL 쿼리 조작을 통해 발생하며, 시스템의 보안을 위협할 수 있습니다. 사용자는 즉시 업데이트하거나 패치를 적용해야 합니다.

🇺🇸 원문 (English)

Hasura GraphQL 1.3.3 contains a remote code execution vulnerability that allows attackers to execute arbitrary shell commands through SQL query manipulation. Attackers can inject commands into the run_sql endpoint by crafting malicious GraphQL queries that execute system commands through PostgreSQL's COPY FROM PROGRAM functionality.

📍 영향받는 시스템

Hasura GraphQL 1.3.3 버전

⚔️ 공격 벡터

공격자는 SQL 쿼리 조작을 통해 시스템 명령을 실행할 수 있습니다. 이는 PostgreSQL의 COPY FROM PROGRAM 기능을 이용하여 발생합니다.

🛡️ 대응 방법

사용자는 Hasura GraphQL의 최신 버전으로 업데이트하거나 공식 제공 패치를 적용해야 합니다. 또한, 시스템의 보안을 강화하기 위해 추가적인 보안 조치가 필요할 수 있습니다.

🔧 검증 코드

로컬 시스템에서 Hasura GraphQL의 버전을 확인하여 취약점 여부를 점검하는 Python 코드입니다. 이 코드는 Hasura GraphQL이 설치되어 있는지 확인하고, 버전이 1.3.3인 경우 취약하다고 판단합니다. 코드를 실행하기 전에 Python과 Hasura GraphQL이 설치되어 있어야 합니다.

Shell / Script
import subprocess
result = subprocess.run(['hasura', 'version'], capture_output=True, text=True)
if '1.3.3' in result.stdout:
    print({"result": "취약", "reason": "Hasura GraphQL 1.3.3 버전이 설치되어 있습니다."})
else:
    print({"result": "양호", "reason": "Hasura GraphQL 1.3.3 버전이 설치되어 있지 않습니다."})

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

PostgreSQL