Уведомление о безопасности Creative Mail
Если вы получили от меня письмо со ссылкой на эту страницу, значит ваш сайт, по всей
видимости, использует версию плагина Creative Mail by Constant Contact (плагин WordPress
для email-маркетинга, предназначенный для WooCommerce, который лежит у вас в файлах по пути
/wp-content/plugins/creative-mail-by-constant-contact/), попадающую в затронутый диапазон
известной проблемы безопасности. На этой странице объясняется, в чём состоит проблема, какие
версии затронуты, почему нет обновления для установки и как безопасно удалить или заменить
плагин.
Проблема отслеживается как CVE-2026-3985: это уязвимость типа SQL-инъекции, доступная без аутентификации, достижимая через обработку плагином брошенных корзин WooCommerce. Она затрагивает версию 1.6.5 и все последующие выпуски, вплоть до последнего, который выпустил производитель, 1.6.9, включительно.
Самый важный практический факт на этой странице: исправленной версии для обновления не существует. Плагин был закрыт в каталоге WordPress.org 14 мая 2026 года и так и не получил исправления. Последний выпуск, 1.6.9, по-прежнему содержит эту проблему, и новый уже не выйдет. Поэтому это не обычное уведомление в духе «просто обновитесь». Решение состоит в том, чтобы отключить и удалить плагин, а если вы им пользуетесь, заменить его поддерживаемой альтернативой. Остальная часть этой страницы посвящена тому, как проверить свою версию и сделать это безопасно.
Есть один обнадёживающий момент, и он реальный. В отличие от некоторых проблем, о которых я пишу, у этой уязвимости действительно есть нижняя граница: она была добавлена в версии 1.6.5. Версии 1.6.4 и более ранние ею не затронуты: уязвимого кода там попросту нет. Если у вас установлена версия 1.6.4 или более старая, эта конкретная проблема вас не касается. (При этом плагин больше никем не поддерживается, что само по себе повод рано или поздно перейти на другое решение.)
Это уязвимость плагина, а не ядра WordPress. Полностью обновлённый WordPress не защитит вас, если сам плагин Creative Mail остаётся на затронутой версии.
Это письмо настоящее?
Да. Это добросовестное уведомление в рамках ответственного раскрытия от независимого исследователя безопасности. Я не прошу у вас денег, паролей или доступа к сайту и не пытался в него проникнуть, что-либо ему отправить или что-либо эксплуатировать.
Всё, что я сделал, это посмотрел общедоступные файлы, которые ваш сайт отдаёт любому посетителю (так же, как публична ваша главная страница), и отметил номер версии, который публикует плагин. Я специально не отправлял ничего в обработчик оформления заказа или согласия плагина ни на вашем сайте, ни на каком-либо другом, и ничто в этой проверке не затрагивает ваши данные, панель управления или какую-либо закрытую часть вашего сайта (подробнее в разделе Что я делал и чего не делал ниже).
Если вы хотите убедиться, кто я, контактные данные приведены внизу этой страницы и на странице Обо мне.
Почему это важно
Creative Mail связывает магазин WooCommerce с Constant Contact для email-маркетинга, и одна из его функций, запоминать корзины, которые были начаты, но не завершены, чтобы магазин мог напомнить о них покупателю. Именно в этой обработке брошенных корзин и живёт данная проблема.
В затронутых версиях, когда плагин фиксирует оформление заказа, один из его запросов к базе данных строится путём подстановки значения, которое исходит от посетителя, без использования подготовленного выражения. Это значение не экранируется для использования в SQL. Следствие таково: посетитель, не выполнивший вход, может изменить этот запрос и прочитать данные из базы данных вашего сайта.
Стоит точно обозначить, чем эта проблема является, а чем нет. Она позволяет злоумышленнику прочитать данные из базы данных. Это серьёзно само по себе, поскольку база данных WordPress хранит, например, адреса электронной почты пользователей и хешированные пароли, а на сайте магазина может хранить и данные покупателей. Но сама по себе это не удалённое выполнение кода, не захват сайта и не способ для злоумышленника выдать себе учётную запись администратора. Это более узкая проблема, чем случаи полной компрометации, о которых я пишу в других материалах, и я предпочитаю честно обозначить масштаб, а не оставить у вас впечатление более пугающее, чем подтверждают факты.
Я описываю это на том уровне, который нужен владельцу сайта, чтобы действовать, и не глубже. Я не публикую подробностей, которые позволили бы кому-то это воспроизвести, и прошу вас не пробовать это ни на своём сайте, ни на чужом. Проверка номера вашей версии, как описано ниже, даёт всё необходимое, чтобы решить, что делать.
Если в моём письме упоминалась эта проблема, значит версия, о которой сообщает ваш сайт, 1.6.5 или новее. Я не проверял, эксплуатируем ли именно ваш сайт; всё, что я наблюдал, это версия.
Затронут ли я?
Всё сводится к одному вопросу: какая у вас версия Creative Mail?
В панели управления WordPress (главный источник):
- Войдите в консоль WordPress (обычно по адресу
yourdomain.com/wp-admin). - Перейдите в Плагины, затем Установленные плагины.
- Найдите Creative Mail by Constant Contact, запись, папка которой называется
creative-mail-by-constant-contact, и посмотрите версию, указанную под названием.
Из публичного манифеста (без входа): откройте в браузере
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txt. Строка
Stable tag: ближе к началу и есть версия, о которой сообщает ваша установка, и это тот
же самый публичный файл, который читал я. Для этого плагина я убедился, что она в точности
совпадает с фактически выпущенным кодом, так что эта проверка надёжна.
Один способ проверки, который для этого плагина не работает, поэтому, пожалуйста, не
полагайтесь на него. Если вы привыкли определять версию плагина по числу ?ver=,
приписанному к скрипту или таблице стилей в исходном коде страницы, здесь это введёт вас в
заблуждение. У этого плагина такие числа являются временными метками файлов (длинные значения
вроде ?ver=1723603844), а не версией плагина, и сравнивать их с 1.6.5 бессмысленно.
Используйте экран в панели управления или readme.txt.
Затем примените это правило:
- 1.6.5 или новее (вплоть до 1.6.9, последнего выпуска): затронуто. Поскольку исправления нет, необходимо удалить или заменить плагин (см. ниже).
- 1.6.4 или более ранняя версия: этой проблемой не затронуто. Уязвимость появилась в 1.6.5, поэтому в более старых установках её нет. (Плагин в любом случае не поддерживается, так что рано или поздно стоит перейти на другое решение.)
Что делать: удалить или заменить
Поскольку плагин был закрыт без исправления, обновления для установки не существует: консоль WordPress вам его не предложит, а версия, которая у вас установлена, последняя, какая вообще когда-либо будет существовать. Закрыть эту проблему можно, только перестав использовать плагин. Сначала сделайте резервную копию, затем удалите его:
- Сделайте резервную копию сайта (файлы и базу данных), прежде чем что-либо менять. Большинство хостинг-провайдеров предлагают резервное копирование в один клик, либо воспользуйтесь плагином резервного копирования для WordPress.
- В панели управления WordPress перейдите в Плагины, затем Установленные плагины, найдите Creative Mail by Constant Contact и нажмите Деактивировать. Деактивация останавливает выполнение уязвимого кода.
- После деактивации нажмите Удалить, чтобы удалить файлы плагина. Если вам удобнее
командная строка, WP-CLI делает то же самое:
wp plugin deactivate creative-mail-by-constant-contact, а затемwp plugin delete creative-mail-by-constant-contact. - Убедитесь, что плагин удалён: запись больше не должна отображаться на экране плагинов, а
yourdomain.com/wp-content/plugins/creative-mail-by-constant-contact/readme.txtбольше не должен загружаться.
Если вы использовали Creative Mail для email-маркетинга своего магазина, вам понадобится замена, чтобы не потерять эту возможность. В официальном каталоге есть несколько поддерживаемых плагинов email-рассылок и новостных рассылок для WooCommerce; выберите тот, который в настоящее время поддерживается и получает обновления. Сама служба Constant Contact этой проблемой не затронута: проблема в плагине WordPress, который был закрыт, а не в самой службе email-рассылок, так что если вы пользуетесь Constant Contact напрямую, целью должна быть актуальная и поддерживаемая интеграция.
Раз уж вы этим занялись, стоит убедиться, что ядро WordPress и остальные ваши плагины тоже обновлены, а также удалить все прочие плагины, которыми вы больше не пользуетесь.
После удаления
Удаление плагина останавливает дальнейшее чтение из вашей базы данных через эту проблему в будущем. Но оно не может отменить то, что, возможно, уже было прочитано за то время, пока плагин был активен на затронутой версии. У меня нет возможности узнать, произошло ли это на вашем сайте, и я не проверял; большинство сайтов в затронутом диапазоне, вероятно, никогда не трогали. Но поскольку я не могу утверждать это наверняка, разумно принять немного мер предосторожности, соразмерных тому, что хранится в вашей базе данных:
- На сайте магазина разумно, чтобы администраторы сменили свои пароли, а также иметь в виду, что контактные данные покупателей в вашей базе данных могли быть раскрыты. WordPress и WooCommerce хранят пароли хешированными, а не в открытом виде, но хеши слабых паролей можно подобрать офлайн, поэтому новые пароли снимают эту тревогу.
- Если какие-либо плагины на вашем сайте хранят собственные учётные данные или ключи API, их тоже стоит считать нуждающимися в замене.
- Перегенерация секретных ключей и «солей» WordPress в
wp-config.php(новые значения доступны в один клик в официальном генераторе секретных ключей) один раз завершает сеансы всех пользователей и делает недействительными все украденные токены сессий.
Чтобы избежать недопонимания: это мера предосторожности, а не утверждение, что ваши данные были похищены. Это уведомление основано на номере версии, а не на каких-либо признаках атаки.
Что я делал и чего не делал
Чтобы полностью прояснить, на чём основана проверка за моим письмом: я читал только
общедоступные файлы, которые ваш сайт и так отдаёт каждому посетителю, а именно публичный
файл readme.txt плагина и вашу главную страницу. Я не обращался ни к панели управления
WordPress, ни к базе данных, ни к какой-либо закрытой части сайта.
В частности, я ни разу не отправлял ничего в обработчик оформления заказа или согласия плагина, ни на вашем сайте, ни где-либо ещё. Ничего не было отправлено, сохранено, протестировано или проэксплуатировано. Здесь это важнее, чем на большинстве подобных страниц, потому что именно эта обработка и есть то, чего касается данная проблема, так что «я к этому не прикасался» и составляет всю разницу между раскрытием и вторжением.
Я также намеренно не публикую подробностей, которые помогли бы кому-то воспользоваться этой проблемой. Описание выше останавливается на уровне, нужном владельцу сайта, и я не даю ссылок ни на какой демонстрационный код.
Это наблюдение по версии: ваш сайт сообщает версию 1.6.5 или новее. Сайт из этого диапазона может уже быть защищён другими средствами, например межсетевым экраном веб-приложений. Это уведомление не является утверждением, что ваш сайт был эксплуатируем на момент проверки.
У меня нет вебмастера / я не справляюсь
Если сайтом занимаетесь не вы, перешлите, пожалуйста, эту страницу тому, кто им занимается (вашему веб-разработчику, агентству или хостинг-провайдеру). Шаги выше он узнает сразу.
Если вы ведёте сайт сами и застряли, я с удовольствием бесплатно подскажу вам направление. Напишите по контактам ниже.
Контакты
Evan Harris, исследователь безопасности
- Эл. почта: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Я обращаюсь по таким вопросам исключительно ради того, чтобы помочь операторам защитить свои сайты. Если вы предпочитаете больше не получать от меня писем, просто сообщите, и я это учту.
Источники
Официальные бюллетени и отслеживание
Разработчик / плагин
- Creative Mail by Constant Contact в каталоге плагинов WordPress.org (сейчас показывает плагин как закрытый)