
Доказательство концепции, демонстрирующее уязвимость SQL-инъекции CVE-2025-24793 в Snowflake Connector для Python, с автоматическим определением пропатченных/непропатченных версий для тестирования безопасности.
Этот репозиторий содержит код проверки концепции (PoC) для тестирования уязвимости CVE-2025-24793 в Snowflake Connector для Python. Проект включает как исправленную, так и неисправленную версии, чтобы продемонстрировать уязвимость и её исправление.
├── 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:
Создайте файл config.toml в корневом каталоге с вашими учётными данными Snowflake:
[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 для Python и связана с SQL-инъекцией через функцию write_pandas.
Скрипт PoC автоматически обнаруживает и демонстрирует:
Скрипт проверяет функцию write_pandas, чтобы определить, присутствует ли уязвимый параметр stage_location, и предоставляет понятную информацию о состоянии безопасности.
⚠️ Предупреждение о безопасности: Это проверка концепции только для образовательных и тестовых целей. Не используйте в производственных средах.
⚠️ Безопасность конфигурации: Никогда не сохраняйте файл config.toml с реальными учётными данными в системе контроля версий. Добавьте его в .gitignore.
⚠️ Затраты Snowflake: Имейте в виду, что выполнение этих тестов может расходовать вычислительные кредиты Snowflake.
config.tomlrequirements.txt