
Snowflake Connector for PythonにおけるCVE-2025-24793 SQLインジェクション脆弱性を実証する概念実証。セキュリティテスト用にパッチ適用済み/未適用バージョンの自動検出機能付き。
このリポジトリには、Snowflake Connector for Python の CVE-2025-24793 脆弱性をテストするための Proof of Concept (PoC) コードが含まれています。このプロジェクトには、脆弱性とその修正を実証するために、パッチ適用済みバージョンと未適用バージョンの両方が含まれています。
├── Dockerfile # Docker configuration
├── requirements.txt # Python dependencies
├── config.toml # Snowflake connection configuration (you need to create this)
├── cve_2025_24793_poc.py # Main PoC script (auto-detects patched/unpatched)
├── snowflake_app.py # Main application
└── snowflake_connector_python-2.9.0-py3-none-any.whl # Snowflake connector wheel
snakeflake_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" # e.g., "abc123.us-east-1"
user = "your_username" # Your Snowflake username
password = "your_password" # Your Snowflake password
role = "your_role" # e.g., "ACCOUNTADMIN" or "SYSADMIN"
warehouse = "your_warehouse" # e.g., "COMPUTE_WH"
database = "your_database" # e.g., "TESTDB"
schema = "your_schema" # e.g., "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. Replace wheel with your patched or unpatched version
# 2. Build and run - the script will auto-detect the version
docker build -t snowflake-test .
docker run --rm snowflake-test
PoC は自動的に以下を実行します:
この脆弱性は Snowflake Connector for Python に影響し、write_pandas 関数を通じた SQL インジェクションに関連しています。
PoC スクリプトは自動的に検出して実証します:
スクリプトは write_pandas 関数を検査して、脆弱な stage_location パラメータが存在するかどうかを判断し、セキュリティ状態に関する明確なフィードバックを提供します。
⚠️ セキュリティ警告: これは教育およびテスト目的のみの概念実証です。本番環境では使用しないでください。
⚠️ 構成のセキュリティ: 実際の認証情報を含む config.toml ファイルをバージョン管理にコミットしないでください。.gitignore に追加してください。
⚠️ Snowflake のコスト: これらのテストを実行すると Snowflake のコンピューティングクレジットを消費する可能性があることに注意してください。
config.toml の Snowflake 認証情報を確認してください。requirements.txt の Python 依存関係を確認してください。