Скомпрометированный MySQL-сервер может получать произвольные локальные файлы клиентов

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

Как и в случае SCP, проблема вызвана тем, что имена загружаемых файлов формирует сервер, а клиентская библиотека лишь выполняет переданную сервером команду без проверки её соответствия исходному запросу. Подразумевается, что имя файла, указанное в отправленной пользователем конструкции «LOAD DATA…LOCAL», совпадает с именем файла, указанным в запросе сервера. В случае, если сервер MySQL контролируется злоумышленником, он может быть модифицирован для запроса произвольных файлов.

Поддержка LOAD DATA…LOCAL» на стороне клиента регулируется сборочной опций «ENABLED_LOCAL_INFILE» и параметром MYSQL_OPT_LOCAL_INFILE в mysql_options(). В ветке MySQL 8.0 данный режим был отключён по умолчанию, но остаётся включён в ветках 5.5, 5.6 и 5.7.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.