Доброе утро.
PHPMailer (этой библиотекой для отправки писем пользуются буквально миллионы сайтов) содержит
критическую уязвимость Remote Code Execution из-за
забытого эскейпинга поля from.
Вкратце: если сайт даёт вписать адрес отправителя письма и использует уязвимую библиотеку для их отправки — то атакующий сможет выполнить любую команду на сервере с правами сайта (например, удалить сайт или отправлять с него спам).
Мне особенно интересны 2 момента:
1. Dawid Golunski
сообщил об ошибке публично 25.12.2016, но пока не пишет, в чем конкретно заключается уязвимость и не показывает PoC код [proof of concept, пример кода, эксплуатирующего уязвимость]. Это, очевидно, сделано для того, чтобы скрипткиддисы [малокомпетентные хакеры (kiddie — ребенок)] не использовали его пример как инструкцию к действию. При этом понять, в чем заключалась уязвимость, можно просто посмотрев на
коммит, исправляющий эту ошибку.
2. Прикольно, как относятся к своим пользователям разные проекты. Drupal (популярная CMS, движок для сайта) не включает в себя PHPMailer напрямую. Тем не менее, они
выпустил PSA (public security advisory, условно письмо
АААА всем обновляться срочно
)
через 12 часов после публичного описания ошибки, Joomla
сделала это через сутки, а Wordpress не написал
ничего до сих пор. Я попытался найти публичный security advisory list для Wordpress и
угадайте что?
Очень классный комментарий одного эксперта — «обновите свой сайт сами,
пока это не сделал за вас хакер». Обычно взломщики чинят уязвимости, через которые проникли в систему, чтобы последующие атакующие не мешали спокойно эксплуатировать жертву.
Как много хакнутых сайтов мы увидим в ближайшие месяцы?