Веб-приложения и серверы на 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.

Инструмент для Linux-гейминга оказался дырой с root-доступом

Инструмент InputPlumber, который используется для объединения устройств ввода в Linux-системах (в том числе в SteamOS), оказался небезопасным. Специалисты SUSE обнаружили в нём критические уязвимости, позволяющие локальному злоумышленнику перехватывать пользовательские сессии, подсовывать нажатия клавиш и даже читать файлы с правами root.

Речь идёт о двух уязвимостях — CVE-2025-66005 и CVE-2025-14338. Обе связаны с тем, что InputPlumber практически не проверял, кто именно обращается к его D-Bus-сервису. А это особенно неприятно, учитывая, что сервис работает с правами root.

Как выяснилось в ходе плановой проверки пакетов, ранние версии InputPlumber вообще не содержали никакой аутентификации клиентов.

«Первая версия InputPlumber, которую мы проверяли, полностью игнорировала аутентификацию, из-за чего мы сразу её забраковали», — пишут эксперты SUSE в отчёте SUSE.

Разработчики попытались исправиться и добавить Polkit, но сделали это так, что защита в реальности часто не работала. Поддержка Polkit была опциональна на этапе компиляции — и по умолчанию оказывалась отключённой. В результате бинарники нередко поставлялись вообще без какой-либо валидации.

Более того, даже при включённом Polkit обнаружилась состояние гонки (race condition) — классическая проблема, связанная с небезопасным использованием unix-process в Polkit (CVE-2025-14338).

По сути, любой пользователь системы получал доступ ко всем D-Bus-методам InputPlumber. А это открывало довольно опасные вектора атаки.

Например, через метод CreateTargetDevice можно было создать виртуальную клавиатуру и начать «нажимать» клавиши в чужой активной сессии — будь то рабочий стол или экран входа в систему.

Проще говоря, один пользователь мог незаметно управлять вводом другого и потенциально добиться выполнения произвольного кода от его имени.

Другой метод — CreateCompositeDevice — позволял использовать конфигурационные файлы для сторонних целей. С его помощью исследователи смогли определить существование привилегированных файлов и даже частично утёкшие данные, включая содержимое /root/.bash_history, которое «подсвечивалось» через сообщения об ошибках.

После раскрытия информации разработчики InputPlumber устранили проблемы. В версии v0.69.0 Polkit-аутентификация включена по умолчанию, а небезопасный механизм проверки заменён на корректный.

Обновления уже добрались и до SteamOS — компания выпустила новые образы SteamOS 3.7.20, в которых уязвимости закрыты.

Пользователям, у которых InputPlumber установлен в системе, настоятельно рекомендуется обновиться как можно скорее. Даже если вы используете его «только для игр», root-сервисы без нормальной аутентификации — это всегда плохая идея.

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