Исследователи обнаружили критическую уязвимость (CVE-2026-42945) в веб-сервере Nginx, которая может привести к удаленному выполнению кода. Эта ошибка — переполнение буфера в куче, не замеченное 18 лет. Уязвимость найдена с помощью ИИ-платформы. — csoonline.com
Исследователи обнаружили критическую уязвимость в широко используемом веб-сервере Nginx, которая при определенных условиях может привести к удаленному выполнению кода. Эта ошибка представляет собой переполнение буфера в куче, которое оставалось незамеченным в коде программы на протяжении последних 18 лет.
Уязвимость, отслеживаемая как CVE-2026-42945, является одной из четырех ошибок, найденных в Nginx исследователями из стартапа в области безопасности DepthFirst AI с помощью их платформы на базе LLM. Она пополняет растущее число недостатков в популярных проектах с открытым исходным кодом, которые годами упускались из виду сканерами безопасности и людьми, но были обнаружены с помощью моделей ИИ в последние месяцы.
Nginx — один из самых популярных веб-серверов, на котором работает почти треть всех веб-сайтов в интернете, и он также интегрирован во многие коммерческие продукты. Программное обеспечение часто используется в качестве обратного прокси, балансировщика нагрузки и кэша для других веб-приложений и серверов.
Уязвимость CVE-2026-42945 находится в модуле ngx_http_rewrite_module, который обрабатывает перезапись URL-адресов, и затрагивает версии Nginx от 0.6.27 до 1.30.0. Ошибке присвоен уровень серьезности 9.2 по шкале CVSS, и она была исправлена в версиях 1.31.0 и 1.30.1.
Коммерческий продукт Nginx Plus, принадлежащий и разрабатываемый фирмой F5, занимающейся безопасностью сетей и приложений, также уязвим и получил исправления в версиях R36 P4, R32 P6 и 37.0.0. Затронуты и другие продукты F5 на базе открытого исходного кода Nginx и Nginx Plus, которые пока не получили обновлений, включая Nginx Instance Manager, F5 WAF for Nginx, Nginx App Protect WAF, F5 DoS for Nginx, Nginx App Protect DoS, Nginx Gateway Fabric и Nginx Ingress Controller.
«Эта уязвимость существует, когда директиве rewrite следует директива rewrite, if или set, а также неименованный захват регулярного выражения, совместимого с Perl (PCRE) (например, $1, $2) с замещающей строкой, содержащей вопросительный знак (?)», — говорится в рекомендации F5. По данным компании, эксплуатация приведет к отказу в обслуживании в виде сбоя сервера, а в системах с отключенной рандомизацией адресного пространства (ASLR) — к произвольному выполнению кода.
Достижение RCE
Хотя эксплойт с доказательством концепции (PoC), разработанный DepthFirst и переданный F5, не включал обход ASLR, исследователи полагают, что достичь его возможно. ASLR — это технология смягчения последствий эксплойтов для повреждения памяти, которая присутствует и включена по умолчанию в большинстве современных операционных систем.
«Nginx использует многопроцессную архитектуру, где рабочие процессы форкуются из одного мастер-процесса», — написал исследователь DepthFirst Чжэньпэн Линь в посте в блоге. «Из-за такой конструкции пространство памяти точно дублируется для каждого дочернего рабочего процесса. Это означает, что макет кучи остается полностью детерминированным для разных рабочих процессов. Если наш эксплойт не сработает и приведет к сбою рабочего процесса, мастер-процесс просто запустит новый с точно таким же макетом памяти. Это позволяет нам безопасно пробовать несколько раз, пока мы не добьемся успеха, не беспокоясь о том, что сбой рабочего процесса изменит макет памяти. Теоретически мы могли бы использовать эту конструкцию для утечки ASLR, постепенно перезаписывая указатели по байтам».
Исследователи также считают, что конфигурации Nginx, необходимые для эксплуатации этой уязвимости, являются распространенными. Например, правила перезаписи URL-адресов часто используются при миграции конечных точек API в новые места без нарушения работы внешних клиентов, которые все еще пытаются запрашивать старый URL. Директива set может использоваться для сохранения исходного пути или его частей в пользовательской переменной для поддержания состояния, динамической маршрутизации конечных точек или передачи их в фоновое приложение для аудита и ведения журналов.
«Вместе эти две директивы являются общими строительными блоками в конфигурациях API-шлюзов», — отметил Линь.
Поскольку эксплойт с доказательством концепции был опубликован на GitHub, пользователям рекомендуется как можно скорее обновиться до исправленной версии, поскольку уязвимости Nginx в прошлом уже эксплуатировались злоумышленниками. Один только отказ в обслуживании представляет серьезный риск для веб-серверов, даже без обхода ASLR, предполагаемого исследователями.
Остальные три уязвимости, раскрытые DepthFirst и исправленные в новых выпусках Nginx, также могут привести к отказу в обслуживании, утечкам памяти или модификации данных. Они отслеживаются как CVE-2026-42946 (CVSS 8.3 – высокая серьезность), CVE-2026-42934 (CVSS 6.3 – средняя) и CVE-2026-40701 (CVSS 6.3 – средняя).
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Lucian Constantin