
Prova de conceito demonstrando a vulnerabilidade de injeção SQL CVE-2025-24793 no Snowflake Connector for Python, com detecção automática de versões corrigidas/não corrigidas para testes de segurança.
Este repositório contém o código de Prova de Conceito (PoC) para testar a vulnerabilidade CVE-2025-24793 no Snowflake Connector para Python. O projeto inclui versões corrigidas e não corrigidas para demonstrar a vulnerabilidade e sua correção.
├── Dockerfile # Configuração do Docker
├── requirements.txt # Dependências Python
├── config.toml # Configuração de conexão Snowflake (você precisa criar)
├── cve_2025_24793_poc.py # Script PoC principal (detecta automaticamente corrigido/não corrigido)
├── snowflake_app.py # Aplicação principal
└── snowflake_connector_python-2.9.0-py3-none-any.whl # Wheel do Snowflake connector
Simplesmente substitua snowflake_connector_python-2.9.0-py3-none-any.whl pelo seu build:
O script PoC detectará automaticamente qual versão você está usando.
Criar uma Conta Snowflake:
abc123.us-east-1)Criar arquivo config.toml:
Crie um arquivo config.toml no diretório raiz com suas credenciais Snowflake:
[connections.my_example_connection]
account = "seu_identificador_conta" # ex.: "abc123.us-east-1"
user = "seu_usuario" # Seu nome de usuário Snowflake
password = "sua_senha" # Sua senha Snowflake
role = "seu_papel" # ex.: "ACCOUNTADMIN" ou "SYSADMIN"
warehouse = "seu_warehouse" # ex.: "COMPUTE_WH"
database = "seu_banco" # ex.: "TESTDB"
schema = "seu_esquema" # ex.: "PUBLIC"
Exemplo de configuração:
[connections.my_example_connection]
account = "abc123.us-east-1"
user = "testuser"
password = "MySecurePassword123!"
role = "ACCOUNTADMIN"
warehouse = "COMPUTE_WH"
database = "TESTDB"
schema = "PUBLIC"
Criar imagem Docker:
docker build -t <nome_do_container> .
Executar container Docker:
docker run --rm <nome_do_container>
Testando com qualquer build:
# 1. Substitua o wheel pela sua versão corrigida ou não corrigida
# 2. Build e execute - o script detectará automaticamente a versão
docker build -t snowflake-test .
docker run --rm snowflake-test
O PoC irá automaticamente:
Esta vulnerabilidade afeta o Snowflake Connector para Python e envolve injeção de SQL através da função write_pandas.
O script PoC detecta e demonstra automaticamente:
O script inspeciona a função write_pandas para determinar se o parâmetro vulnerável stage_location está presente, fornecendo feedback claro sobre o status de segurança.
⚠️ Aviso de Segurança: Esta é uma prova de conceito apenas para fins educacionais e de teste. Não use em ambientes de produção.
⚠️ Segurança da Configuração: Nunca commit seu arquivo config.toml com credenciais reais no controle de versão. Adicione-o ao .gitignore.
⚠️ Custos Snowflake: Esteja ciente que executar esses testes pode consumir créditos de computação do Snowflake.
config.tomlrequirements.txt