WordPress исправила баг с SQL-инъекцией срочным обновлением

Баг, найденный в движке WordPress, позволяет хакерам осуществлять SQL-инъекции. Вебмастерам следует срочно установить обновление, чтобы предотвратить возможность захвата сайта.

Уязвимость обнаружена в CMS WordPress версии 4.8.2 и ниже. Во вторник WordPress объявила о выпуске версии 4.8.3, в которой опасность уменьшена. Представитель CMS настоятельно рекомендует пользователям немедленно установить обновление.

В чем причина уязвимости?

Уязвимость CVE-2017-14723 возникает в версиях WordPress 4.8.2 и ниже из-за того, что $wpdb->prepare() создает «неожиданные и небезопасные запросы», которые могут привести к SQL-атакам.

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

Об этой проблеме 20 сентября на платформе HackerOne сообщил Энтони Феррара. Разработчики WordPress уже пытались исправить данную ошибку в версии 4.8.2, однако безопасность ядра так и не была обеспечена. Обновление повлияло на функциональность многих веб-сайтов, потенциально скомпрометировав более 1,2 миллиона строк кода.

На следующий день после релиза Феррара сообщил об ошибке, однако на его запрос несколько недель не обращали внимание. Только после того, как Феррара уведомил команду WordPress о том, что он собирается публично раскрыть эту проблему, и спустя пять недель переговоров, они смогли договориться о времени публичного объявления.

WordPress в сотрудничестве с Феррарой выпустила исправление, которое облегчает проблему. Однако, по словам все того же Феррары, этого недостаточно, чтобы решить проблемы, вызванные предыдущим патчем.

Возможное решение проблемы

Феррара отметил:

Текущее исправление полностью убирает механизм prepare, который возвращает строку SQL-запросов. Сделайте то, что делают и все остальные: возвращайте объект выражения или запроса, либо выполняйте запрос напрямую. Таким образом вы не сможете продублировать строку.

Стоит заметить, что данное решение повлечет за собой кардинальные изменения для WP.

Не обязательно сразу все менять — можно разрабатывать альтернативное решение параллельно с существующим API. Это будет проблематично, но необходимо.

Существующий API небезопасен. Это не значит, что он постоянно подвергается атакам, но означает, что он нуждается в срочной переработке.

«Опасность снижена, — добавил Феррара. — Сначала перспектива сотрудничества не внушала оптимизма, но с течением работы положение улучшалось. Если прошлые 6 недель я был разочарован, то теперь я надеюсь на лучшее».

Установить обновление можно автоматически либо вручную, скачав WordPress 4.8.3.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *