Контроллеры Cisco на линии огня — эксплойт уже в сети, до атаки всего пара шагов

Контроллеры Cisco на линии огня — эксплойт уже в сети, до атаки всего пара шагов

Просто введите «notfound», и вы властелин чужого Wi-Fi.

image

Технические подробности одной из самых опасных уязвимостей 2025 года — CVE-2025-20188 — стали общедоступны. Речь идёт о критическом баге в беспроводных контроллерах Cisco на базе IOS XE. Исследователи из Horizon3 опубликовали разбор проблемы, который хоть и не содержит готового скрипта для удалённого исполнения команд, но предоставляет достаточно данных, чтобы опытный специалист или даже ИИ-система сгенерировали рабочую атаку.

Cisco официально раскрыла уязвимость 7 мая. Ошибка позволяет удалённому злоумышленнику без какой-либо авторизации загружать файлы на устройство, обходить ограничения по путям и в итоге выполнять определенные действия с правами суперпользователя. В качестве причины компания указала наличие жёстко зашитого секретного ключа для валидации JSON Web Token (JWT), применяемого при проверке доступа к API.

Опасность возникает только в том случае, если на устройстве включена функция Out-of-Band AP Image Download — механизм, через который контроллеры скачивают прошивки для точек доступа вне основного канала связи. При активном режиме под угрозой оказываются следующие модели оборудования:

  • Catalyst 9800-CL Wireless Controllers для облачных развёртываний
  • Встроенные контроллеры Catalyst 9800 в коммутаторах серий 9300, 9400 и 9500
  • Отдельные устройства серии Catalyst 9800
  • Контроллеры, встроенные непосредственно в точки доступа Catalyst

Исследование Horizon3 показало, что уязвимость связана с тем, как серверная часть системы (работающая на Lua в составе OpenResty — это связка Nginx и Lua-интерпретатора) обрабатывает JWT-токены . При нормальной работе валидация токена происходит с использованием ключа, хранящегося в файле /tmp/nginx_jwt_key. Однако если этот файл по какой-то причине отсутствует, скрипт использует в качестве "секретного" ключа строку "notfound".

Такой подход фактически отменяет любую аутентификацию: злоумышленнику достаточно токена, сгенерированного с алгоритмом HS256, и соответствующей комбинации, чтобы получить валидный пропуск в систему.

В рамках демонстрации Horizon3 отправили POST-запрос на порт 8443 по адресу /ap_spec_rec/upload/, вложив файл с путём, выходящим за пределы разрешённой директории. Даже без вредоносной нагрузки файл успешно разместился в недопустимой зоне, что подтверждает отсутствие должной фильтрации пути и валидации на сервере.

Этот шаг сам по себе не даёт полного доступа к системе, но создаёт плацдарм для дальнейшего проникновения. Если разместить файл в нужной директории и изменить параметры конфигурации, которые подгружает система, становится возможным удалённое выполнение произвольного кода. В одном из разобранных вариантов злоумышленник воздействует на штатный скрипт pvp.sh, отслеживающий изменения в определённых папках. Подменив его настройки и инициировав перезапуск, атакующий может заставить процесс интерпретировать вредоносные инструкции.

Таким образом, злоумышленник получает полную власть над контроллером, включая возможность внедрения веб-оболочек, закладок и дальнейшего распространения внутри корпоративной сети. Причём для начала атаки даже не требуется доступ в админку: достаточно открытого порта и неотключённой функции загрузки образов.

В Horizon3 подчёркивают, что механизм обработки JWT реализован с серьёзными архитектурными изъянами. Поскольку OpenResty работает без дополнительного криптографического слоя и принимает JWT напрямую в Lua-скриптах, любые ошибки в логике сразу становятся уязвимостями критического уровня .

Сейчас Cisco рекомендует как можно скорее установить обновление прошивки — версия 17.12.04 или выше полностью устраняет проблему. До момента обновления временным решением может быть отключение функции Out-of-Band загрузки образов, которая отвечает за доступ к уязвимому интерфейсу.

Красная или синяя таблетка?

В Матрице безопасности выбор очевиден.