
Preuve de concept démontrant la vulnérabilité d'injection SQL CVE-2025-24793 dans Snowflake Connector for Python, avec détection automatique des versions corrigées/non corrigées pour les tests de sécurité.
Ce dépôt contient un code de preuve de concept (PoC) pour tester la vulnérabilité CVE-2025-24793 dans Snowflake Connector pour Python. Le projet inclut à la fois des versions patchées et non patchées pour démontrer la vulnérabilité et son correctif.
├── 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
Remplacez simplement snowflake_connector_python-2.9.0-py3-none-any.whl par votre build :
Le script PoC détectera automatiquement la version que vous utilisez.
Créer un compte Snowflake :
abc123.us-east-1)Créer le fichier config.toml :
Créez un fichier config.toml dans le répertoire racine avec vos identifiants 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"
Exemple de configuration :
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Construire l'image Docker :
docker build -t <container_name> .
Exécuter le conteneur Docker :
docker run --rm <container_name>
Test avec n'importe quel build :
# 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
Le PoC détectera automatiquement :
Cette vulnérabilité affecte le Snowflake Connector pour Python et implique une injection SQL via la fonction write_pandas.
Le script PoC détecte et démontre automatiquement :
Le script inspecte la fonction write_pandas pour déterminer si le paramètre vulnérable stage_location est présent, fournissant un retour clair sur l'état de sécurité.
⚠️ Avertissement de sécurité : Ceci est une preuve de concept à des fins éducatives et de test uniquement. Ne pas utiliser dans des environnements de production.
⚠️ Sécurité de la configuration : Ne commettez jamais votre fichier config.toml avec des identifiants réels dans le contrôle de version. Ajoutez-le à .gitignore.
⚠️ Coûts Snowflake : Soyez conscient que l'exécution de ces tests peut consommer des crédits de calcul Snowflake.
config.tomlrequirements.txt