Исследователь безопасности Willem de Groot обратил внимание на недоработку (https://twitter.com/gwillem/status/1086275952915533828), напоминающую недавно выявленную (https://www.opennet.ru/opennews/art.shtml?num=49953) уязвимость в реализацией SCP. Подконтрольный злоумышленнику сервер MySQL
может (https://gwillem.gitlab.io/2019/01/17/adminer-4.6.2-file-disc.../) получить доступ к файлам на локальной системе клиента (в рамках его прав доступа). Вместо отправляемых при помощи команды "LOAD DATA LOCAL (https://dev.mysql.com/doc/refman/8.0/en/load-data-local.html)" файлов, сервер может загрузить произвольные файлы, например, SSH-ключи или параметры криптокошельков пользователя.
Как и в случае SCP проблема вызвана тем, что имена загружаемых файлов формирует сервер, а клиентская библиотеке лишь выполняет переданную сервером команду без проверки соответствия исходному запросу. Подразумевается, что имя файла указанное в отправленной пользователем конструкции "LOAD DATA...LOCAL" совпадает с именем файла, указанным в запросе сервера. В случае если MySQL сервер контролируется злоумышленником, он может быть модифицирован (https://github.com/Gifts/Rogue-MySql-Server) для запроса произвольных файлов.
Поддержка LOAD DATA...LOCAL" на стороне клиента регулируются сборочной опций "ENABLED_LOCAL_INFILE" и параметром MYSQL_OPT_LOCAL_INFILE в mysql_options(). В ветке MySQL 8.0 данный режим был отключён (https://github.com/mysql/mysql-server/commit/98ed3d8bc8ad724...) по умолчанию, но остаётся включён (https://dev.mysql.com/doc/refman/5.7/en/load-data-local.html) в ветках 5.5, 5.6 и 5.7.
URL: https://www.reddit.com/r/programming/comments/ahspfv/mysql_c.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50001
"Проблеме" уже много лет, 5 точно есть, это не новость.
не, ты не понял - это обратная той пятилетней давности новость, идея та же что у scp - тогда загружался (или портился) файл на сервере по кривой команде клиента, а тут _сервер_, ВНЕЗАПНО, оверрайдит .profile - _тебе_.прикольна, чо. Особенно учитывая набор невыясненных дырок во всех ныне доступных в дистрибутивах версиях и вчера-вышедшую 25 с неведомым набором исправлений, которой еще нигде нет.
чукча, man почитай - load local передает файл на сервер
в pacman похожая хрень при скачивании пакетов -- ну не прям такая же -- но суть в том что сервер говорит как называется пакет, независимо от того что просит сам pacman-клиентпрям совсем любой файл это НЕ позволяет перезаписать -- но всё равно не очень приятно.
(давно заметил, багрепорт не писал -- так как очень сильной опасности не-видел-и-не-вижу)
Я тебе страшную вещь скажу: контролируя репозиторий, можно добиться перезаписи любого файла в системе или выполнения произвольного кода при установке/удалении/обновлении пакета. С любым пакетным менеджером.
более страшную новость скажу. они это и делают)) ага.
> контролируя репозиторий, можно добиться перезаписи любого файла в системе или выполненияа контролируя ЗЕРКАЛО в репощитория?
или контролируя интернет-провайдера?
я же блин, говорю о том что хрень происходит прям с серверной стороны.. а кто там находится по ту сторону (серверную) -- уж точно не обязательно мэйнтейнеры пакетов.
> или контролируя интернет-провайдера?Там чо, файлы по открытому каналу летают? :)
> Там чо, файлы по открытому каналу летают?да!
потом конечно цифровая подпись проверяется (gnupg) .. но это уже когда они на в файловой системе оказались
> :)
ничего смешного кстати.. это вам не https-какой-нибудь-там
А как с этим у MariaDB?
Присоединяюсь к вопросу.
ничё, что на стороне клиента прикол?
А ничего что mariadb это не только сервер но и клиент?
> А как с этим у MariaDB?а как с "этим" может быть у копипастеров? Так же, как и в том, что скопипастили, очевидно.
Ничего, щас распотрошат дифы от последней оракловой версии, и радостно отрапортуют, что и как исправили. Или нет.
Копипастер это автор оригинальной MySQL?
там был сильно не один автор, и maria ни разу не форк с определенной точки где "пришел злой орацл и все испортил". Поэтому таки да, копипаста, с добавлением там и тут своих деталек - неужели ты думаешь, что он будет переписывать клиентлибу с нуля или возвращаться к версии 2005го года и допиливать ее под современный сервер?
вы все путаете - пришел злой Sun (именно тогда был сделан Мари-дб а не когда Oracle пришел).
тогда дядя пытался только отжать MySQL (TM), но не вышло.
Вроде бы именно клиентлибу переписали полностью, дабы сменить лицензию на более кошерную с их точки зрения.
ну типа оракл открыл исходник - проверяйте, чо...
Это который просил / требовал передавать права на патчи Вендиусу великому.. дабы он мог продать воздух.