Купили программу для учета техники, а бонусом выдали ключи от всей сети хакерам. Рассказываем о печальной судьбе продукта SolarWinds

leer en español

Купили программу для учета техники, а бонусом выдали ключи от всей сети хакерам. Рассказываем о печальной судьбе продукта SolarWinds

Продукт Web Help Desk признали уязвимым даже после установки последних обновлений безопасности.

image

Казалось бы, покупаешь «службу поддержки» для заявок и учёта техники, а в комплекте получаешь почти готовый удалённый доступ для злоумышленников. Специалисты watchTowr Labs рассказали, как добились удалённого выполнения кода в SolarWinds Web Help Desk до входа в систему, хотя тестировали «полностью обновлённую» установку продукта.

SolarWinds Web Help Desk используют как обычную платформу для заявок. Такие системы часто открывают наружу, к ним подключают много сотрудников и подрядчиков, а внутри накапливают переписку, учётные записи, сведения об оборудовании и иногда пароли в комментариях. Поэтому любая брешь в подобном продукте быстро становится дорогостоящей.

История у Web Help Desk тяжёлая. Ранее вокруг продукта уже всплывали уязвимости из того же класса, связанные с десериализацией в Java и возможностью выполнить команды на сервере. В 2025 году обсуждали CVE-2025-26399, которую трактовали как обход предыдущих исправлений.

watchTowr начинали как раз с попытки повторить CVE-2025-26399, но по дороге нашли собственную цепочку. В цепочке несколько дыр: обход аутентификации и уязвимость десериализации, которая приводит к выполнению кода. По данным SolarWinds, речь идёт как минимум о CVE-2025-40552, CVE-2025-40553 и CVE-2025-40554.

Техническая суть упирается в очень старый стек. Web Help Desk построен на Java WebObjects, а внутри есть компонент AjaxProxy, который принимает запросы с параметрами и превращает входные данные в объекты Java. Дальше сервер вызывает указанный метод и возвращает результат. Если удаётся подсунуть «не тот» объект или «не те» поля, появляется классический путь к выполнению кода через «цепочки» в сторонних библиотеках.

SolarWinds пытались закрывать подобные дыры фильтрами. Например, в одном из исправлений добавили проверку тела запроса: ограничили размер для запросов к «ajax» и начали искать подозрительные строки вроде javaClass, следы сериализованных объектов и названия популярных «цепочек». watchTowr показали, что такая защита ломается на различиях между обработчиками. Тело запроса сначала «нормализуют» одними библиотеками для проверок, а потом разбирают другим разборщиком JSON уже для реальной логики AjaxProxy. Старый разборщик понимает экранирование вида \xNN, которое другие компоненты не «раскрывают». Поэтому можно спрятать ключи вроде javaClass или params, пройти проверку, а на следующем этапе получить исходные значения «как нужно» для десериализации.

Отдельно исследователи описали способ «убить» проверку длины. Ограничение включалось только если приложение уверенно распознало тело как корректный JSON. Достаточно было добавить последовательность, которая после предварительной расшифровки превращает JSON в некорректный, – и проверка длины не срабатывала. При этом на пути к десериализации приложение снова читало тело запроса уже в «сыром» виде, где JSON оставался корректным.

Даже после того как SolarWinds начали «вырезать» поле params на этапе очистки запроса, трюк с \xNN позволял замаскировать ключ и оставить параметры на месте. Дальше оставался вопрос «чем» выполнить код, потому что один из известных вариантов опирался на библиотеку c3p0, а в инструкции к прошлому исправлению SolarWinds предлагали вручную убрать c3p0 из загрузки классов. watchTowr подобрали другой путь: использовали объект, который при сериализации инициирует подключение к базе через JDBC, а затем запускает заданный проверочный запрос. Встроенный PostgreSQL у Web Help Desk, по их описанию, продолжает работать локально даже при выборе внешней базы, а правила доступа разрешают локальные подключения без пароля. В результате исследователи дошли до выполнения команд через SQL-конструкцию COPY FROM PROGRAM, а на Windows команда исполнялась с правами SYSTEM.

Публично SolarWinds выпустили бюллетень и исправления 28 января 2026 года, а в документации фигурирует релиз Web Help Desk 2026.1, где закрывают и обходы аутентификации, и цепочки к удалённому выполнению кода.

Для администраторов вывод простой и неприятный. Web Help Desk снова подтвердил репутацию продукта, где «заплатка поверх заплатки» не держит удар, особенно когда в основе лежит устаревшая платформа с экзотическими компонентами разбора данных. Если Web Help Desk доступен из интернета, обновление до версии с исправлениями лучше рассматривать как срочное, а после обновления стоит отдельно проверить, не остались ли сервисы и настройки, которые открывают лишние локальные пути вроде встроенной базы.