Как оказалось, в состав корректирующего выпуска WordPress 4.7.2 был включен еще один патч — для серьезной уязвимости, позволяющей без аутентификации изменять содержимое любого поста или страницы.

Программный интерфейс REST API был по умолчанию активирован для конечных пользователей в декабре, с выпуском версии 4.7 CMS-платформы. Этот плагин обеспечивает дополнительный способ модификации постов, комментариев, термов и других настроек. Со слов разработчиков, информацию о новой бреши повышения привилегий было решено придержать, чтобы дать больше времени на установку обновления на местах.

Уязвимость в REST API обнаружил Марк-Александр Монпа (Marc-Alexandre Montpas) из Sucuri; соответствующее уведомление было направлено команде WordPress 20 января. В минувшую среду подробности бреши были наконец раскрыты в блоге Sucuri, а также на сайте WordPress.org.

По свидетельству Монпа, данная проблема вызвана особенностями управления доступом через REST API. В частности, при обработке передаваемых значений $_GET и $_POST назначался более высокий приоритет, чем параметрам, закодированным внутри пути. Из-за этого атакующий мог послать запрос с ID, включающим не только цифры, но и буквы. Кроме того, исследователи обнаружили, что, если в запросе на внесение изменений не указывать конкретный пост, можно добиться выполнения запроса в обход проверки разрешений.

Как пояснил Монпа, «перед передачей управления в вызов get_post параметр ID приводится к целочисленному значению». Если атакующий подал в запросе буквенно-цифровой идентификатор, он будет преобразован в цифровое значение, которое будет воспринято как ID страницы.

«Отсюда они смогут добавлять короткие коды для эксплуатации уязвимостей в плагинах (обычно подобные изменения ограничены уровнем прав на публикацию), внедрять на сайт SEO-спам или рекламу и т.п., — пишет исследователь. — В зависимости от того, какие плагины включены на сайте, можно даже будет с легкостью выполнить PHP-код».

По словам головного разработчика WordPress Аарона Кэмпбелла (Aaron Campbell), патч для уязвимости, обнаруженной Монпа, был создан довольно быстро. К тестированию были привлечены компании, использующие брандмауэры веб-приложений (WAF) для защиты клиентов от эксплойтов: Sucuri, SiteLock, Cloudflare, Incapsula. Совместными усилиями был создан соответствующий набор правил для WAF.

«В понедельник (23 января), пока продолжались тестирование и доработка патча, мы решили привлечь к этому процессу также хосты WordPress, — пишет Кэмпбелл. — Им в частном порядке были переданы информация об уязвимости и рекомендации по защите пользователей. В тесном взаимодействии с нашими ИБ-специалистами на хостах были реализованы средства защиты и регулярно проводились проверки на предмет попыток эксплойта против пользователей».

Собранные таким образом данные показали, что itw-попытки эксплойта отсутствуют. Тогда было принято решение включить заплатку в состав WordPress 4.7.2, но не упоминать о бреши в анонсе, чтобы патч успел до раскрытия установиться хотя бы у тех, у кого включено автоматическое обновление.

Остальные уязвимости, закрытые с выходом WordPress 4.7.2, менее серьезны. Это, как уже сообщалось, XSS, SQLi и проблема с разрешениями.

Категории: Главное, Уязвимости