В web-ориентированном почтовом клиенте Roundcube обнаружена (https://blog.ripstech.com/2016/roundcube-command-execution-v.../) опасная уязвимость, позволяющая выполнить свой код на сервере через отправку из web-интерфейса специально оформленного сообщения. Уязвимость проявляется при использовании настроек по умолчанию (для отправки используется PHP-функция mail() и утилита sendmail, отключен safe_mode).
Суть проблемы в небезопасном использовании PHP-функции mail(), в числе аргументов которой передаются полученные от пользователя непроверенные данные. В частности, для отправки сообщения в Roundcube используется код:
$sent = mail($to, $subject, $msg_body, $header_str, "-f$from");
который приведёт к вызову утилиты sendmail с передачей в командной строке аргумента "-f$from". Так как содержимое заполняемого пользователем поля From не фильтруется на предмет опасных символов (проверка выполняется по маске \S+@\S+), в качестве отправителя можно указать, например, "example@example.com -OQueueDirectory=/tmp -X/var/www/html/rce.php", что при отправке сообщения приведёт к записи содержимого заголовка письма в файл /var/www/html/rce.php. После чего атакующий может через браузер запросить скрипт rce.php и он будет выполнен на сервере.Проблема устранена в выпусках Roundcube 1.2.3 и 1.1.7 (https://roundcube.net/news/2016/11/28/updates-1.2.3-and-1.1....). Администраторам Roundcube рекомендует срочно установить обновление и проверить свои серверы на предмет активности атакующих (Roundcube достаточно популярный webmail-клиент, c sourceforge за год было загружено (https://sourceforge.net/projects/roundcubemail/files/stats/t...) более 260 тысяч копий). В качестве обходного метода защиты вместо PHP-функции mail() можно настроить отправку по SMTP.
URL: https://blog.ripstech.com/2016/roundcube-command-execution-v.../
Новость: http://www.opennet.me/opennews/art.shtml?num=45643
В Horde что-то похожее было.
Похоже это только вершина айсберга и всё очень плохо.
Навскидку, первое что попалось в поиске на GitHub с такой же неисправленной уязвимостью:https://github.com/paumiau/pauspeculator/blob/c177dcda06921e...
https://github.com/hyperlinkage/elaborate/blob/1dfa8467ad0b0...
https://github.com/SilexLab/Board/blob/6529d7a340abaaffd3dfd...
https://github.com/mbaechler/OBM/blob/355c8233cd75c02b1e7252...
https://github.com/jungepiraten/vpanel/blob/fc29709c68fe5708...
Тока не говорит что все это на PHP!И да это не язык, это программисты... ))
все проблемы в архитектуре пхп.
почему программисты должны постоянно держать в голове ляпы безопастности и соответственно вставлять костыли, например экранировать кавычки при SQL или экранировать HTML?
им что, нечем больше заняться?
безопастность должна быть по умолчанию, а не задним числом.
по поводу пхп нужно знать, что он дырявый и расчитывать риски.
> безопастности
> безопастностьбезопасность.
> по поводу пхп нужно знать, что он дырявый и расчитывать риски.
строго говоря любую прогу нужно писать исходя из того, что ввод пользователя это крайне опасная тема.
язык должен быть безопасный, а не программист должен все время сидеть как на иголках.
нужно пинать разрабов пхп
> язык должен быть безопасный, а не программист должен все время сидеть как
> на иголках.
> нужно пинать разрабов пхпПишите на brainfnck-е -- на нём не было ни одной уязвимости. Ну, ещё алгол68 и кобол в последнее время радуют <WWW><
лучше CGI на фортране )))))
нет, пинать пхп разрабов, тогда всем будет счастье.
Конкретно в этом случае косяк не самого php, а программистов roundcube. Так что пни лучше самого себя для чтения доки и понимания ситуации. А программист должен хоть чуточку головой думать, а не только спинным мозгом копипастить.
> язык должен быть безопасный, а не программист должен все время сидеть как на иголках.язык должен быть безопасный. а программист должен сидеть, как на иголках
> нужно пинать разрабов пхп
нужно. что не исключает необходимости думать башкой.
Парадоксальное заявление, один программист должен сидеть "как на иголках" когда пишет код другому программисту? Второй программист видимо РЕМЕСЛЕННИК, ему мозги не нужны совсем?
>> безопастности
>> безопастность
> безопасность.Он экранировал буквой т середину опастного слова ;-)
И много вы вебмейл-интерфейсов с такой функциональностью и без монструозного набора библиотек не на PHP видали?Или до сих пор фанатик сексченджа?
санитйзеры exec() не использую явно
SMTP ошибка: [554] 5.5.1 Error: no valid recipients
хотя завтра всё равно ж придётся патчить :/
Никогда не видел roundcube на локалхосте. Обычно отправка как раз через smtp идет. Что-то сильно преувеличено значение уязвимости.
> Никогда не видел roundcube на локалхосте. Обычно отправка как раз через smtp
> идет. Что-то сильно преувеличено значение уязвимости.Обычно (и по дефолту) как раз таки в очередь пихают через PHP-шный mail(), очень редко кто заморачивается с настройкой отправки по SMTP на провайдерский или отдельный почтовый сервер и к локалхосту это не имеет никакого отношения.
Для эксплуатации уязвимости нужно иметь, как минимум, доступ к вебмейлу с возможностью отправить письмо.
Хотя дырка, безусловно, просто позорная.
А что на серверах кто-то ещё использует sendmail?
В postfix'вом sendmail -X игнорируется.
Я же говорил Javascript не нужен и его быть не должно , вспомнити npm leftpad и null underfined . А еще вспомнити NaN != NaN . Тут грюки сами-собой напросяться.
> Я же говорил Javascript не нужен и его быть не должно ,
> вспомнити npm leftpad и null underfined . А еще вспомнити NaN
> != NaN . Тут грюки сами-собой напросяться.Даёшь R/O web-почту с бейзик-авторизацией и _статическими_ HTML-страницами. Ура, т-щи!
[html]
[head]
[title]Cubick Sfehre -- web account.[/title]
[/head]
[body]
[h1]Web server last chkd yur mail - 1970-01-01 UTC./h1]
[pre]
No news is good news
[hr][/pre]
[/body][/html]
Лучше так чем с javascript . Javascript тормозит , уже забыли про атом ? А голые Html-страницы было бы гораздл лучше
Болезный, тут javascript вообще не при делах.Интересно, навязчивое желание везде и всюду рассказывать про то, какой плохой javascript, это новое психическое расстройство или вариация уже известного?
Пожалуйста, введите хотябы одного получателя
что, так и говорит "хотябы"?
Давно пора на http://www.rainloop.net/ переходить, как в свое время с "белочки" на roundcube переходили.
Я лично первый раз слышу про него.
Кому: example@example.com -OQueueDirectory=/tmp -X/tmp/rce.php
SMTP ошибка: [503] valid RCPT command must precede DATA
ЧЯДНТ?
Не включаешь мозг. В результате не можешь понять ни условия срабатывания уязвимости, ни сообщение об ошибке.
Хорошо, что я в chroot все веб-приложения на php запускаю. Хоть как-то от подобных вещей защищает.
>приведёт к записи содержимого заголовка письма в файл /var/www/html/rce.phpЧитаю это и недоумеваю. Неужели в 2017 году еще кто-то дает пользователю веб сервера права на запись в каталоги, которые доступны из адресной строки? Или еще хлеще, sendmail вызывается с suid битом из веб приложения? Это - клиника! Программисты Roundcube (хоть они и козлы!) такому админу не помогут. Только лоботомия.
> Неужели в 2017 годуСорри, поторопился. Конечно 2016
ПРЕДЪЯВИТЬ машину времени НЕМЕДЛЕННО!!!
> ПРЕДЪЯВИТЬ машину времени НЕМЕДЛЕННО!!!ты из ФСКН что ле?
здравсвуйте! помогите, пожалуйста!как можно зайти в Roundcube если пароль забыт? почта так же привязана к Gmail, что делать? на Gmail пароль установлен точно другой, не такой как на Roundcube...