Опубликован PoC-эксплоит для уязвимости Citrix Bleed (CVE-2023-4966), которая позволяет злоумышленникам перехватывать аутентификационные cookie сеансов с уязвимых устройств Citrix NetScaler ADC и NetScaler Gateway.
Критическая уязвимость CVE-2023-4966 (9,6 балла по шкале CVSS), связанная с удаленным раскрытием информации, была устранена еще 10 октября 2023 года, однако тогда Citrix не сообщила никаких подробностей об этой проблеме.
Как вскоре предупредили исследователи из компании Mandiant, оказалось, что с конца августа 2023 года этот баг использовался злоумышленниками в таргетированных атаках, то есть представлял собой уязвимость нулевого дня.
На этой неделе Citrix выпустила новое предупреждение для администраторов устройств NetScaler ADC и Gateway, призывая их немедленно исправить уязвимость, поскольку число попыток ее эксплуатации начало расти.
Теперь эксперты из компании Assetnote поделились информацией о методе эксплуатации CVE-2023-4966 и опубликовали на GitHub PoC-эксплоит, демонстрирующий результаты их изысканий и призванный помочь всем тем, кто хочет проверить свои устройства на уязвимость.
Известно, что уязвимость CVE-2023-4966 получила название Citrix Bleed, работает без аутентификации, связана с буфером и затрагивает устройства Citrix NetScaler ADC и NetScaler Gateway, используемые для балансировки нагрузки, внедрения межсетевых экранов, управления трафиком, VPN и аутентификации пользователей.
Проанализировав непропатченную (13.1-48.47) и пропатченную (13.1-49.15) версии NetScaler, эксперты Assetnote обнаружили около 50 изменений в функциях. Среди этих функций были замечены две (ns_aaa_oauth_send_openid_config и ns_aaa_oauthrp_send_openid_config), которые содержат дополнительные процедуры проверки границ, предшествующие генерации ответов.
Эти функции использовали snprintf для вставки соответствующих данных в сгенерированный JSON-пейлоад для конфигурации OpenID. В непропатченной версии ответ отправлялся сразу, без каких-либо проверок. То есть уязвимость возникала из-за snprintf и при эксплуатации могла привести к перечитыванию буфера.
В пропатченной версии ответ отправляется только в том случае, если snprintf возвращает значение меньше 0x20000.
Аналитики Assetnote попытались использовать полученные знания на практике и атаковать уязвимые эндпоинты NetScaler. В результате они обнаружили, что значение hostname, используемое для генерации полезной нагрузки, берется из HTTP-заголовка Host, а для доступа к нему не нужны права администратора. Более того, имя хоста вставляется в пейлоад шесть раз, что позволяет превысить лимит буфера, вынуждая эндпоинт отвечать содержимым буфера и смежной памяти.
«Мы обнаружили большое количество утечек памяти сразу следом за полезной нагрузкой JSON, — пишут эксперты Assetnote. — Хотя большая ее часть представляла собой нулевые байты, в ответе присутствовала и подозрительно выглядящая информация».
В результате многократной эксплуатации уязвимости аналитики постоянно выявляли шестнадцатеричную строку длиной 32-65 байт, представляющую собой сессионный cookie. Получение этого cookie-файла позволяет атакующим захватывать чужие учетные записи и получать неограниченный доступ к уязвимым устройствам.
Теперь, когда эксплоит для Citrix Bleed свободно доступен, количество атак на эту уязвимость будет расти еще быстрее. Так, Shadowserver уже сообщает о всплесках попыток эксплуатации, предупреждая, что вредоносная активность уже началась.