此仓库包含用于测试 Snowflake Connector for Python 中 CVE-2025-24793 漏洞的概念验证(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
只需将 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" # 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 依赖项