
Datart v1.0.0-rc.3における情報漏洩の脆弱性により、認証された攻撃者がカスタムのH2 JDBC接続文字列を介して機密データにアクセスできるようになります。
CVE ID: CVE-2025-70829
製品: Datart
バージョン: v1.0.0-rc.3
脆弱性タイプ: 情報漏洩
Datart v1.0.0-rc.3 における情報漏洩の脆弱性により、認証済みの攻撃者はカスタム H2 JDBC 接続文字列を介して機密データにアクセスできます。アプリケーションを自身の内部データベースファイルに接続させることで、攻撃者はユーザー資格情報や構成詳細を含むシステムテーブルにクエリを実行できます。
jdbc:h2:file:./bin/h2/datart.demo;MODE=MySQL
データベースからユーザーのパスワードハッシュを取得することにより、攻撃者は有効な JWT トークンを偽造し、任意のユーザー (例: 管理者) になりすますことができます。これは、アプリケーションがハードコードされた秘密鍵 (d@a$t%a^r&a*t) を使用し、トークンペイロードにパスワードハッシュの Java hashCode() を含めるためです。
SQL クエリ:
SELECT id, username, email, password, name FROM user;
悪用方法: 取得した
passwordハッシュをjwttest.pyと共に使用して、任意のユーザーログイン用の有効なBearerトークンを生成します。
攻撃者は、他の接続済みデータソースの構成も取得できます。
SQL クエリ:
SELECT * FROM source;
復号:
source テーブルの config フィールドは、多くの場合 AES を使用して暗号化されています。アプリケーションはデフォルトのハードコードされたセキュリティキーを使用します:
デフォルトのセキュリティキー:
d@a$t%a^r&a*t
提供されている Decrypt.java ユーティリティ (このデフォルトキーを含む) を使用してこれらの値を復号し、外部データベースの平文の資格情報を取得できます。