В системе управления контентом Quick.CMS (разработчик - OpenSolution) обнаружена критическая уязвимость, получившая идентификатор CVE‑2026‑11860. Проблема связана с небезопасной десериализацией пользовательских данных, передаваемых по незащищённому протоколу HTTP. Согласно бюллетеню безопасности, уязвимость затрагивает все версии продукта вплоть до 6.8 включительно. Патч, ограничивающий взаимодействие с сервером исключительно по HTTPS, был опубликован разработчиками 14 мая 2026 года в версии 6.8. Инсталляции, на которых это обновление не установлено, остаются уязвимыми.
Уязвимость CVE-2026-11860
Степень опасности уязвимости оценена как высокая - 7,5 балла по шкале CVSS v4.0. Вектор атаки предполагает, что злоумышленник может находиться в одной локальной сети с сервером (соседняя подсеть), а для успешной эксплуатации требуется, чтобы администратор зашёл в панель управления сайтом. При этом атакующему не нужна аутентификация, а само взаимодействие с жертвой - минимальное (атака типа "человек посередине"). В случае успешной реализации злоумышленник получает возможность выполнить произвольный код на сервере, что приводит к полной компрометации системы (высокое воздействие на конфиденциальность, целостность и доступность данных).
Техническая суть уязвимости состоит в том, что Quick.CMS десериализует данные, полученные от клиента по протоколу HTTP, не проверяя их подлинность и целостность. Это позволяет атакующему перехватывать сериализованные полезные нагрузки во время передачи и подменять их на вредоносные объекты. Поскольку десериализация выполняется без ограничений по классам и без проверки корректности данных, специально сформированный объект может инициировать вызов так называемых "магических методов" PHP - в первую очередь __wakeup() и __destruct(). Используя цепочки гаджетов (gadget chains, то есть последовательности вызовов методов, доступных в коде приложения и его библиотек), атакующий может добиться выполнения произвольного кода на сервере. Автоматическое срабатывание происходит, когда администратор заходит в панель управления - в этот момент сервер обрабатывает вредоносные данные.
Эта проблема является классическим примером уязвимости CWE‑502 ("Десериализация недоверенных данных") и CWE‑94 ("Некорректный контроль генерации кода (внедрение кода)"). Дополнительным фактором, усиливающим опасность, служит использование незащищённого канала HTTP. Даже если в остальном код работает корректно, отсутствие шифрования и проверки подлинности данных при передаче позволяет злоумышленнику, контролирующему сетевой трафик (например, в публичной Wi‑Fi-сети или через скомпрометированный маршрутизатор), внедрить произвольную полезную нагрузку. При этом сама атака не требует сложных манипуляций со стороны нападающего - достаточно перехватить HTTP-запрос администратора к панели управления и заменить в нём сериализованные данные.
Разработчики Quick.CMS устранили проблему, ограничив все обращения к серверу протоколом HTTPS. В версии 6.8, выпущенной 14 мая 2026 года, введено принудительное перенаправление с HTTP на HTTPS для всех страниц административной панели. Это предотвращает возможность перехвата и подмены сериализованных данных "в пути". Однако организации, не выполнившие обновление, остаются в зоне риска. Важно подчеркнуть, что патч не меняет алгоритм десериализации как таковой - он лишь устраняет вектор атаки через незащищённый канал. Если HTTPS будет настроен некорректно, уязвимость может быть воспроизведена и на обновлённой версии. Кроме того, если в будущем появится возможность манипулировать данными, передаваемыми через защищённое соединение (например, через XSS на стороне клиента), проблема может вернуться в ином обличье.
Пользователям Quick.CMS настоятельно рекомендуется как можно скорее обновиться до версии 6.8. Тем, кто не может установить патч немедленно, следует вручную включить обязательное использование HTTPS на уровне веб-сервера и отказаться от поддержки HTTP для панели управления. Также стоит убедиться, что сертификат TLS настроен правильно и не допускает атак типа "человек посередине" из-за слабых протоколов или самоподписанных сертификатов. Сама архитектура, основанная на приёме сериализованных данных от клиента, остаётся рискованной, и разработчикам следует рассмотреть возможность полного отказа от десериализации пользовательского ввода или внедрения строгих белых списков классов.
Описанная уязвимость ещё раз напоминает о фундаментальном правиле безопасности: никогда нельзя доверять данным, пришедшим из ненадёжного источника, даже если они выглядят корректно. Сериализованные объекты, особенно в PHP, представляют собой мощный инструмент для атакующего при отсутствии должной защиты. В данном случае проблема усугубилась передачей по незащищённому протоколу. Организациям, использующим Quick.CMS, следует не только установить обновление, но и пересмотреть общую конфигурацию безопасности инфраструктуры - в частности, политику HTTPS, контроль сетевого доступа к панели управления и регулярное сканирование на наличие других десериализационных уязвимостей в используемых компонентах.
Ссылки