🇰🇷 한글 설명
Python용 SQL 파서인 sqlparse 0.6.0 미만 버전에서 발생하는 취약점입니다. 특정 조건에서 주석만 포함된 SQL 문을 반복적으로 재검사하면서 CPU 자원을 기하급수적으로 소모하는 2차 함수적 시간 복잡도 문제가 발생합니다.
💡 쉬운 설명
악의적으로 조작된 SQL 문을 처리할 때 컴퓨터의 두뇌 역할을 하는 CPU를 과도하게 사용하여 시스템을 느리게 만들거나 멈추게 할 수 있습니다. 일종의 서비스 거부(DoS) 공격을 유발할 수 있는 문제입니다.
🇺🇸 원문 (English)
sqlparse is a non-validating SQL parser module for Python. Prior to 0.6.0, group_comments in sqlparse/engine/grouping.py repeatedly rescans comment-only statements before the MAX_GROUPING_TOKENS guard, causing quadratic CPU consumption through sqlparse.parse() and sqlparse.format(sql, strip_comments=True). This issue is fixed in version 0.6.0.
📍 영향받는 시스템
sqlparse version < 0.6.0
⚔️ 공격 벡터
조작된 주석이 포함된 SQL 문을 sqlparse.parse() 또는 sqlparse.format() 함수에 입력하여 CPU 자원을 고갈시킴
🛡️ 대응 방법
sqlparse 라이브러리를 0.6.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 Version 값이 0.6.0 미만이면 취약한 상태이며, 0.6.0 이상이면 안전합니다.
pip show sqlparse | grep Version