
Уязвимость раскрытия информации в 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;
Дешифрование:
Поле config в таблице source часто зашифровано с помощью AES. Приложение использует ключ безопасности по умолчанию, зашитый в код:
Ключ безопасности по умолчанию:
d@a$t%a^r&a*t
Вы можете использовать предоставленную утилиту Decrypt.java (в которую включён этот ключ по умолчанию), чтобы расшифровать эти значения и получить открытые учётные данные для внешних баз данных.