Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript затрагивает опасная форма уязвимости, которая может привести к успешной атаке вида ReDoS (regular expression denial of service). Злоумышленник может проэксплуатировать уязвимость, посылая большие и сложные фрагменты текста на инпут веб-сервера или приложения на основе JavaScript.

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

Известно, что у различных языков программирования и технологий веб-серверов есть схожие проблемы с операциями сопоставления шаблонов, что подвергает их опасности атаки ReDoS. Однако в случае с JavaScript все усугубляется из-за однопоточной модели реализации большинства серверов JavaScript, где каждый запрос обрабатывает тот же поток.

Если злоумышленник проведет атаку ReDoS, она «положит» весь сервер, а не только одну конкретную операцию. Интересно, что впервые подобные схемы ReDoS-атак были описаны еще в далеком 2012 году.

Проведенный в прошлом году исследования показали, что 5 % всех уязвимостей, обнаруженных в библиотеках и приложениях Node.js, были связаны с ReDoS.

Сейчас же эксперты считают, что атаки ReDoS набирают популярность, так эти уязвимости игнорировались на протяжении долгого времени. Кристиан-Александру Стайцу и Майкл Прадель из Дармштадтского технического университета в Германии сообщили об обнаружении 25 ранее неизвестных уязвимостей в популярных модулях Node.js.

Эксперты опубликовали список этих модулей и брешей в них:

Исследователи полагают, что злоумышленник может создать специальные эксплойты для атаки сайтов с помощью любой из этих 25 библиотек.

Эксперты проверили 2 846 популярных сайта, из которых 339 (12 %) оказались уязвимы хотя бы перед одной ReDoS-уязвимостью.

Стайцу и Прадель опубликовали POC-код, доказывающий наличие проблемы, на GitHub.

В GitHub нашли критическую дыру: можно было получить доступ к репозиториям

Исследователи из Wiz обнаружили критическую уязвимость в GitHub, которая позволяла выполнить код на серверной инфраструктуре платформы через обычную команду git push. Проблема получила идентификатор CVE-2026-3854 и затрагивала GitHub[.]com, корпоративный сервер GitHub и несколько облачных корпоративных версий GitHub.

Суть уязвимости была в ошибке обработки пользовательских параметров при git push.

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

Для GitHub Enterprise Server это могло означать полную компрометацию сервера и доступ ко всем репозиториям и внутренним секретам. На GitHub.com риск был ещё больше: из-за общей бэкенд-инфраструктуры злоумышленник теоретически мог получить доступ к миллионам публичных и закрытых репозиториев, расположенных на затронутых узлах.

GitHub быстро закрыл проблему. Патч для GitHub.com развернули 4 марта, а для в GitHub Enterprise Server дыру закрыли 10 марта. По итогам внутреннего расследования корпорация заявила, что признаков эксплуатации уязвимости в реальных атаках не обнаружено.

Однако для корпоративных пользователей риск всё ещё актуален, если они не обновили свои инсталляции GitHub Enterprise Server. По данным Wiz, на момент публикации значительная часть таких серверов всё ещё оставалась без патча. Поэтому администраторам стоит как можно быстрее перейти на обновлённые версии.

RSS: Новости на портале Anti-Malware.ru