Получение контроля за MySQL-сервером позволяет получить локальные файлы клиентов
Исследователь безопасности Willem de Groot обратил внимание на недоработку, напоминающую недавно выявленную уязвимость в реализацией SCP. Подконтрольный злоумышленнику сервер MySQL может получить доступ к файлам на локальной системе клиента (в рамках его прав доступа). Вместо отправляемых при помощи команды "LOAD DATA LOCAL" файлов, сервер может загрузить произвольные файлы, например, SSH-ключи или параметры криптокошельков пользователя.
Как и в случае SCP проблема вызвана тем, что имена загружаемых файлов формирует сервер, а клиентская библиотеке лишь выполняет переданную команду. Подразумевается, что имя файла указанное в отправленной пользователем конструкции "LOAD DATA...LOCAL" совпадает с именем файла, возвращенным в запросе сервера. В случае если сервер контролируется злоумышленником, сервер может быть модифицирован для запроса произвольных файлов.
Поддержка LOAD DATA...LOCAL" на стороне клиента регулируются сборочной опций "ENABLED_LOCAL_INFILE" и параметром MYSQL_OPT_LOCAL_INFILE в mysql_options. В ветке MySQL 8.0 данный режим был отключен по умолчанию, но остается включен в ветках 5.5, 5.6 и 5.7.