Критическая уязвимость в node-netmask затрагивает 279 тысяч приложений

Критическая уязвимость в node-netmask затрагивает 279 тысяч приложений

Критическая уязвимость в node-netmask затрагивает 279 тысяч приложений

В популярном npm-пакете node-netmask выявлена уязвимость, позволяющая обойти ограничение доступа к IP-адресам и провести атаку SSRF, RFI или LFI на приложение на базе Node.js. Проблема устранена с выпуском версии 2 продукта.

Библиотека netmask выполняет парсинг IP-адресов при обращении к сетевым ресурсам через приложение. На этот компонент полагаются свыше 279 тыс. проектов на GitHub; из репозитория npm его еженедельно скачивают по 3 млн раз и более.

Уязвимость в netmask, получившая идентификатор CVE-2021-28918, вызвана ошибкой в реализации проверки входных данных и проявляется при обработке IP-адресов смешанного формата.

Согласно спецификациям IETF, адреса IPv4 в текстовом виде могут быть представлены в различных форматах, в том числе в десятичном и восьмеричном. В последнем случае строковое значение адреса начинается с нуля — например, 0150.0024.0073.0321, что соответствует более привычному 104.20.59.209. Основные браузеры обычно отслеживают префикс «0» в адресной строке и автоматически совершают перевод IP-адреса в десятичный формат.

Как оказалось, netmask эту особенность не учитывает и попросту отбрасывает начальный 0, обрабатывая все части адреса как десятичные числа. Злоумышленник может, например, запросить ресурс, указав IP-адрес как 0177.0.0.1 (эквивалентно 127.0.0.1 — кольцевому адресу, возвращающему к локальному хост-компьютеру), и уязвимый модуль обработает его как внешний адрес 177.0.0.1. В итоге использующее netmask приложение не уловит тождества 0177.0.0.1 и 127.0.0.1 и загрузит ресурс в обход возможных запретов.

Точно так же при обращении к приложению на базе Node.js автор атаки может указать localhost-адрес как 0127.0.0.1 (соответствует десятичному 87.0.0.1). Модуль netmask обработает его как публичный 127.0.0.1, и искомый доступ будет получен.

 

Уязвимость в netmask позволяет также обойти проверку разрешений на доступ к интранет-адресам, VPN, контейнерам и узлам локальной сети путем ввода IP-адреса 012.0.0.1 (10.0.0.1), который netmask воспримет как 12.0.0.1 (публичный).

Обнаружившие проблему исследователи отметили, что она «катастрофична», так как возможность манипуляции значениями IP-адресов на уровне ввода грозит атаками типа RFI (Remote File Inclusion, динамическое подключение файлов с других серверов), LFI (Local File Inclusion, включение в цепочку выполнения локальных файлов) и SSRF (подмена адресов на стороне сервера).

Патч для netmask вышел десять дней назад в составе сборки 2.0.0 пакета; разработчикам приложений настоятельно рекомендуется обновить зависимости в коде.

Античит Riot добрался до BIOS: Valorant может не запуститься

Riot Games снова закручивает гайки в борьбе с читерами — и на этот раз дело дошло до BIOS. Компания объявила о новом требовании для части игроков Valorant: перед запуском игры может понадобиться обновить BIOS. Причина — уязвимость в UEFI, которая теоретически позволяет обходить защитные механизмы Vanguard, фирменного античита Riot.

Riot обнаружила баг в работе IOMMU (Input-Output Memory Management Unit) на некоторых материнских платах от разных производителей.

Этот механизм должен защищать оперативную память от прямого доступа со стороны внешних устройств на этапе загрузки системы. Но из-за уязвимости защита могла быть фактически отключена, даже если в BIOS она отмечена как включённая.

Речь идёт о целой группе уязвимостей (CVE-2025-11901, CVE-2025-14302, CVE-2025-14303 и CVE-2025-14304), которые создают небольшое «окно» на старте системы — в этот момент DMA-устройства потенциально могут получить доступ к памяти. Для обычных пользователей это звучит экзотично, но для особенно мотивированных читеров — вполне рабочий сценарий обхода античита.

Кого это коснётся? Пока что — не всех. Vanguard начнёт проверять наличие обновлённого BIOS только у «ограниченного числа» игроков Valorant, чьи системы по каким-то параметрам выглядят подозрительно и «слишком похожи на конфигурации читеров».

Однако Riot уже не скрывает планы на будущее. Компания рассматривает возможность распространить требование:

  • на игроков высших рангов Valorant — Ascendant, Immortal и Radiant;
  • а в перспективе — и на League of Legends, хотя сейчас таких ограничений там нет.

Если Vanguard заблокирует запуск игры, решение будет одно: обновить BIOS до последней версии, выпущенной производителем материнской платы. Уязвимость затрагивает материнские платы от ASRock, Asus, Gigabyte и MSI. Обновления уже вышли или готовятся для части моделей, но ситуация выглядит неоднозначно.

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

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