
CVE-2025-24793 SQL 인젝션 취약점을 시연하는 개념 증명으로, Snowflake Connector for Python에서 패치된/패치되지 않은 버전을 자동 감지하여 보안 테스트에 사용됩니다.
이 저장소는 Snowflake Connector for Python의 CVE-2025-24793 취약점을 테스트하기 위한 PoC(Proof of Concept) 코드를 포함합니다. 프로젝트는 취약점과 그 수정 사항을 보여주기 위해 패치된 버전과 패치되지 않은 버전을 모두 포함합니다.
├── Dockerfile # Docker 설정
├── requirements.txt # Python 종속성
├── config.toml # Snowflake 연결 설정 (직접 생성해야 함)
├── cve_2025_24793_poc.py # 주요 PoC 스크립트 (패치/미패치 자동 감지)
├── snowflake_app.py # 주요 애플리케이션
└── snowflake_connector_python-2.9.0-py3-none-any.whl # Snowflake 커넥터 wheel
Snowflake_connector_python-2.9.0-py3-none-any.whl을 사용자 빌드로 교체하기만 하면 됩니다:
PoC 스크립트는 사용 중인 버전을 자동으로 감지합니다.
Snowflake 계정 생성:
abc123.us-east-1)를 기록해 두세요.config.toml 파일 생성:
루트 디렉터리에 Snowflake 자격 증명을 포함한 config.toml 파일을 생성하세요:
[connections.my_example_connection]
account = "your_account_identifier" # 예: "abc123.us-east-1"
user = "your_username" # Snowflake 사용자 이름
password = "your_password" # Snowflake 비밀번호
role = "your_role" # 예: "ACCOUNTADMIN" 또는 "SYSADMIN"
warehouse = "your_warehouse" # 예: "COMPUTE_WH"
database = "your_database" # 예: "TESTDB"
schema = "your_schema" # 예: "PUBLIC"
구성 예시:
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Docker 이미지 빌드:
docker build -t <container_name> .
Docker 컨테이너 실행:
docker run --rm <container_name>
모든 빌드로 테스트:
# 1. wheel을 패치 또는 미패치 버전으로 교체
# 2. 빌드 및 실행 - 스크립트가 자동으로 버전 감지
docker build -t snowflake-test .
docker run --rm snowflake-test
PoC가 자동으로 수행하는 작업:
이 취약점은 Snowflake Connector for Python에 영향을 미치며 write_pandas 함수를 통한 SQL 인젝션과 관련됩니다.
PoC 스크립트는 자동으로 감지 및 시연:
스크립트는 write_pandas 함수를 검사하여 취약한 stage_location 매개변수가 있는지 확인하고 보안 상태에 대한 명확한 피드백을 제공합니다.
⚠️ 보안 경고: 이는 교육 및 테스트 목적으로만 제공되는 PoC입니다. 프로덕션 환경에서는 사용하지 마십시오.
⚠️ 설정 보안: 실제 자격 증명이 포함된 config.toml 파일을 버전 관리에 커밋하지 마십시오. .gitignore에 추가하세요.
⚠️ Snowflake 비용: 이러한 테스트를 실행하면 Snowflake 컴퓨트 크레딧이 소모될 수 있습니다.
config.toml의 Snowflake 자격 증명을 확인하세요.requirements.txt의 Python 종속성을 확인하세요.