
Prueba de concepto que demuestra la vulnerabilidad de inyección SQL CVE-2025-24793 en el Conector Snowflake para Python, con detección automática de versiones parcheadas/no parcheadas para pruebas de seguridad.
Este repositorio contiene código de prueba de concepto (PoC) para probar la vulnerabilidad CVE-2025-24793 en Snowflake Connector para Python. El proyecto incluye tanto versiones parcheadas como no parcheadas para demostrar la vulnerabilidad y su corrección.
├── 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
Simplemente reemplace snowflake_connector_python-2.9.0-py3-none-any.whl con su compilación:
El script PoC detectará automáticamente qué versión está utilizando.
Cree una cuenta de Snowflake:
abc123.us-east-1)Cree el archivo config.toml:
Cree un archivo config.toml en el directorio raíz con sus credenciales de 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"
Configuración de ejemplo:
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Compilar la imagen de Docker:
docker build -t <container_name> .
Ejecutar el contenedor de Docker:
docker run --rm <container_name>
Pruebas con cualquier compilación:
# 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
El PoC automáticamente:
Esta vulnerabilidad afecta a Snowflake Connector para Python e implica inyección SQL a través de la función write_pandas.
El script PoC detecta y demuestra automáticamente:
El script inspecciona la función write_pandas para determinar si está presente el parámetro vulnerable stage_location, proporcionando una retroalimentación clara sobre el estado de seguridad.
⚠️ Advertencia de seguridad: Esto es una prueba de concepto únicamente con fines educativos y de pruebas. No lo utilice en entornos de producción.
⚠️ Seguridad de la configuración: Nunca suba su archivo config.toml con credenciales reales al control de versiones. Añádalo a .gitignore.
⚠️ Costos de Snowflake: Tenga en cuenta que ejecutar estas pruebas puede consumir créditos de cómputo de Snowflake.
config.tomlrequirements.txt