
Proof-of-concept che dimostra la vulnerabilità di SQL injection CVE-2025-24793 in Snowflake Connector per Python, con rilevamento automatico delle versioni patchate/non patchate per test di sicurezza.
Questo repository contiene il codice Proof of Concept (PoC) per testare la vulnerabilità CVE-2025-24793 nel Connettore Snowflake per Python. Il progetto include sia la versione patchata che quella non patchata per dimostrare la vulnerabilità e la relativa correzione.
├── Dockerfile # Configurazione Docker
├── requirements.txt # Dipendenze Python
├── config.toml # Configurazione di connessione Snowflake (devi crearlo tu)
├── cve_2025_24793_poc.py # Script PoC principale (rileva automaticamente patchato/non patchato)
├── snowflake_app.py # Applicazione principale
└── snowflake_connector_python-2.9.0-py3-none-any.whl # Wheel del connettore Snowflake
Sostituisci semplicemente snowflake_connector_python-2.9.0-py3-none-any.whl con la tua build:
Lo script PoC rileverà automaticamente quale versione stai utilizzando.
Crea un Account Snowflake:
abc123.us-east-1)Crea il file config.toml:
Crea un file config.toml nella directory principale con le tue credenziali Snowflake:
[connections.my_example_connection]
account = "your_account_identifier" # es. "abc123.us-east-1"
user = "your_username" # Il tuo nome utente Snowflake
password = "your_password" # La tua password Snowflake
role = "your_role" # es. "ACCOUNTADMIN" o "SYSADMIN"
warehouse = "your_warehouse" # es. "COMPUTE_WH"
database = "your_database" # es. "TESTDB"
schema = "your_schema" # es. "PUBLIC"
Configurazione di esempio:
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Crea l'immagine Docker:
docker build -t <container_name> .
Esegui il container Docker:
docker run --rm <container_name>
Test con qualsiasi build:
# 1. Sostituisci la wheel con la tua versione patchata o non patchata
# 2. Build ed esecuzione - lo script rileverà automaticamente la versione
docker build -t snowflake-test .
docker run --rm snowflake-test
Il PoC automaticamente:
Questa vulnerabilità colpisce il Connettore Snowflake per Python e riguarda l'iniezione SQL tramite la funzione write_pandas.
Lo script PoC rileva e dimostra automaticamente:
Lo script ispeziona la funzione write_pandas per determinare se il vulnerabile parametro stage_location è presente, fornendo un feedback chiaro sullo stato di sicurezza.
⚠️ Avviso di Sicurezza: Questo è un proof-of-concept solo per scopi educativi e di testing. Non utilizzarlo in ambienti di produzione.
⚠️ Sicurezza della Configurazione: Non committare mai il tuo file config.toml con credenziali reali nel controllo versione. Aggiungilo a .gitignore.
⚠️ Costi Snowflake: Tieni presente che l'esecuzione di questi test potrebbe consumare crediti di calcolo Snowflake.
config.tomlrequirements.txt