Во входящей в состав MySQL утилите mysqldump (http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html), используемой для создания резервных копий, выявлена (https://blog.tarq.io/cve-2016-5483-backdooring-mysqldump-bac.../) уязвимость (CVE-2016-5483 (https://security-tracker.debian.org/tracker/CVE-2016-5483)), позволяющая
организовать выполнение произвольных shell-команд или привилегированных конструкций SQL во время восстановления резервной копии при помощи утилиты mysql. Код выполнятся с правами администратора, запустившего mysql. Уязвимостью может воспользоваться пользователь СУБД, имеющий права на создание таблиц.
Проблема вызвана особенностью добавления комментариев с названиями таблиц в выводе mysqldump. Атакующий имеет возможность создать таблицу с переводом строки в имени, что приведёт к тому, что в область комментария попадёт только начало имени, а хвост будет перенесён на другую строку и выполнен при загрузке дампа. Например, атакующий может создать таблицу с именем "evil \! id select user(),@@version/*", разнесённым на три строки:
CREATE TABLE `evil
\! id
select user(),@@version/*` (test text);
При создании резервной копии в дампе, полученном от mysqldump, часть имени вынесена за пределы комментария:
--
-- Table structure for table `evil
\! id
select user(),@@version/*`
При восстановлении резервной копии администратором будут запущены команды "\! id" и "select user(),@@version/*":
$ mysql test
Злоумышленник может воспользоваться проблемой для оставления лазейки после успешной атаки по подставновке SQL-кода через уязвимое web-приложение. Например, атакующий может осуществить подстановку команд в резервную копию, затем выждать какое-то время и более активно атаковать систему, чтобы администратор заметил факт взлома web-приложения (например, удалив или изменив данные в БД). Выявив факт атаки администратор попытается восстановить прошлое состояние БД, используя наиболее свежую версию резервной копии, но так как в атакующий уже позаботился о подстановке в неё своих команд, при восстановлении бэкапа, администратор поспособствует запуску кода атакующего с повышенными привилегиями.
Проблеме подвержены все версии MySQL, в которых уязвимость остаётся неисправленной, а также выпуски MariaDB до 5.5.53 и 10.1. Обновления пакетов с MariaDB уже выпущены Debian (https://security-tracker.debian.org/tracker/CVE-2016-5483) и Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-2...). Уязвимость была обнаружена осенью, но уведомление компании Oracle осталось без ответа, поэтому спустя 90 дней исследователи опубликовали сведения об уязвимости в открытом доступе. В качестве обходного метода защиты предлагается при создании бэкапов запускать утилиту mysqldump с опцией "--skip-comments", воспользоваться альтернативными инструментами резервного копирования MySQL или запретить доступ пользователей СУБД к выполнению операций "create table".
URL: https://blog.tarq.io/cve-2016-5483-backdooring-mysqldump-bac.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=46174