Уязвимость Citrix ADC/NetScaler CVE-2023-3519
Всем привет! Сегодня затронем часть работы реверс-инженера и исследователя уязвимостей. На обзоре уязвимось прошлого года в Citrix ADC/NetScaler: CVE-2023-3519. Даже если вы программист, а не безопасник - прочитайте, это может помочь избежать таких же ошибок.
NetScaler - это решение для управления трафиком, которое помогает распределить нагрузку, повысить быстродействие и безопасность веб-приложений. Уязвимость затрагивает устройства с включенными режимом ААА (Аутентификация, Авторизация, Аудит). Уязвимы все версии обновленные до 19 июля.
А что за уязвимость? Unauthenticated RCE, т.е. выполнение произвольных команд без аутентификации. Рейтинг у неё соответствующий - критический (9.8 CVSS). Также, сразу несколько исследователей смогли добиться RCE.
Что по ней известно? С обновлением, в функции ns_aaa_gwtest_get_event_and_target_names, которая обрабатывает два аргумента event и target, была добавлена проверка на длину второго аргумента и обработка исключения. То есть, в уязвимой версии этой проверки нет и при передаче в функцию слишком длинного аргумента, вызывает необработанное исключение переполнения буфера (Buffer Overflow).
Но как добиться срабатывания этого модуля “извне” и передать ему на вход данные? Уязвимая функция вызывается в начале родительской функции ns_aaa_gwtest_get_valid_fsso_server, которая доступна по адресу /gwtest/formssso. А аргументы передаются прямо в Query String: /gwtest/formsso?event=...&target=... То есть, правильно сформировав GET-запрос такого вида, в конце второго (достаточно длинного) аргумента можно передать команду, которая будет исполнена на устройстве (которое было призвано бороться со злом). Это отличный плацдарм для злоумышленников для продолжения атаки. Такие уязвимости обнаруживаются редко, но несут серьезную угрозу.
Раз https://blog.assetnote.io/2023/07/24/citrix-rce-part-2-cve-2023-3519/ Два https://bishopfox.com/blog/citrix-adc-gateway-rce-cve-2023-3519 Три https://blog.assetnote.io/2023/08/09/exploiting-citrix-netscaler-cve-2023-3519/
· 28.08.2024
Т.е. при переполнении буфера, изначальные инструкции затираются и поверх них накладываются нужные команды. Я правильно понимаю?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён