🇰🇷 한글 설명
sqlparse 0.6.0 미만 버전에서 output_format이 'python' 또는 'php'로 설정될 때 백슬래시 이스케이프 처리가 제대로 이루어지지 않는 취약점이 존재합니다. 공격자가 조작된 SQL을 통해 생성된 문자열을 종료시키고 Python 또는 PHP 코드를 주입할 수 있습니다. 이 문제는 0.6.0 버전에서 수정되었습니다.
💡 쉬운 설명
SQL 코드를 특정 프로그래밍 언어 형식으로 변환할 때, 특수 문자를 제대로 처리하지 못하는 문제입니다. 이를 통해 해커가 악성 코드를 몰래 끼워 넣어 시스템을 조작할 수 있습니다.
🇺🇸 원문 (English)
sqlparse is a non-validating SQL parser module for Python. Prior to 0.6.0, sqlparse/filters/output.py fails to escape existing backslashes before quotes in sqlparse.format output_format='python' and output_format='php' and the corresponding sqlformat -l modes, allowing crafted SQL to terminate the generated string and inject Python or PHP code when a downstream consumer executes or imports the generated source. This issue is fixed in version 0.6.0.
📍 영향받는 시스템
sqlparse 0.6.0 미만 모든 버전
⚔️ 공격 벡터
조작된 SQL 문을 입력하여 생성된 Python/PHP 코드 내에 악성 스크립트를 주입하는 방식
🛡️ 대응 방법
sqlparse 라이브러리를 0.6.0 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Version 값이 0.6.0 미만이면 취약한 상태입니다.
pip show sqlparse | grep Version