Критическая уязвимость в 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 пакета; разработчикам приложений настоятельно рекомендуется обновить зависимости в коде.

Apple срочно закрыла 0-day в iOS после шпионской атаки

Apple вчера вечером выпустила обновления своих ОС. Среди них стоит отметить патчи для устройств iPhone и iPad, закрывающие критическую уязвимость нулевого дня, которая уже используется в реальных атаках. Речь идёт о баге с идентификатором CVE-2026-20700.

По словам Apple, эксплойт применялся в «очень сложной атаке» против конкретных людей.

Такая формулировка у Apple появляется нечасто; как правило, она подразумевает целевые кибератаки уровня коммерческого шпионского софта. Обнаружили проблему специалисты Google Threat Analysis Group (TAG) — команды, которая как раз охотится за правительственными кибергруппами.

Атаки, скорее всего, были направлены на журналистов, дипломатов, активистов или других «интересных» для разведки персон, а не на массового пользователя.

Уязвимость находится в dyld — это динамический загрузчик библиотек, один из базовых компонентов iOS и iPadOS. Он отвечает за то, чтобы при запуске приложения система корректно подгружала нужные библиотеки и фреймворки.

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

Apple прямо указывает, что CVE-2026-20700, вероятно, использовалась в составе более широкой цепочки эксплуатации. Одновременно были закрыты ещё две уязвимости — CVE-2025-14174 и CVE-2025-43529. Судя по всему, атакующие комбинировали несколько багов, чтобы обойти современные механизмы защиты.

Патч уже доступен в составе iOS 26.3 и iPadOS 26.3. Обновление касается широкого списка устройств:

  • iPhone 11 и новее;
  • iPad Pro 12,9″ (3-го поколения и новее);
  • iPad Pro 11″ (1-го поколения и новее);
  • iPad Air 3-го поколения и новее;
  • iPad 8-го поколения и новее;
  • iPad mini 5-го поколения и новее.

С учётом подтверждённой эксплуатации откладывать обновление точно не стоит. Чтобы установить патч, достаточно зайти в «Настройки» → «Основные» → «Обновление ПО» и установить iOS 26.3 или iPadOS 26.3.

Даже если атака была таргетированной, практика показывает: инструменты, созданные для точечных операций, рано или поздно могут утечь или масштабироваться. В таких случаях лучшая стратегия — просто обновиться и закрыть вопрос.

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