🇰🇷 한글 설명
Python용 SQL 파서 모듈인 sqlparse 0.6.0 미만 버전에서 발생하는 취약점입니다. 일치하지 않는 달러 인용 리터럴이나 다중행 주석 구분자를 반복적으로 스캔하면서 sqlparse.parse() 등의 함수 호출 시 CPU 사용량이 기하급수적으로 증가하는 2차 함수적 성능 저하가 발생합니다.
💡 쉬운 설명
특수하게 조작된 SQL 문장을 입력하면 컴퓨터의 두뇌 역할을 하는 CPU가 과도하게 일을 하게 되어 시스템이 느려지거나 멈출 수 있습니다. 이는 서비스 거부(DoS) 공격으로 이어질 수 있는 문제입니다.
🇺🇸 원문 (English)
sqlparse is a non-validating SQL parser module for Python. Prior to 0.6.0, SQL_REGEX in sqlparse/keywords.py and the per-position loop in sqlparse/lexer.py repeatedly scan unmatched dollar-quoted literal and multiline-comment delimiters, causing quadratic CPU consumption through sqlparse.parse(), sqlparse.format(), and sqlparse.split(). This issue is fixed in version 0.6.0.
📍 영향받는 시스템
sqlparse 0.6.0 미만 버전
⚔️ 공격 벡터
조작된 SQL 구문(달러 인용 리터럴 또는 다중행 주석 미종결)을 파싱 함수에 입력하여 CPU 자원을 고갈시킴
🛡️ 대응 방법
sqlparse 라이브러리를 0.6.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Version 값이 0.6.0 미만이면 취약한 상태이며, 0.6.0 이상이면 안전합니다.
pip show sqlparse | grep Version