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

Почти половина FTP-серверов в интернете работает без шифрования

Старый добрый FTP, похоже, до сих пор жив и создаёт немало проблем. По данным специалистов Censys, в интернете сейчас доступно около 6 млн систем с FTP, почти половина из них при этом работает без шифрования. Исследователи насчитали 5,94 млн хостов с открытым FTP. Это на 40% меньше, чем в 2024 году, когда таких систем было больше 10 млн.

Но расслабляться рано: протокол всё ещё занимает заметную долю — около 2,7% всех интернет-доступных сервисов.

Самое тревожное — уровень защиты. У примерно 2,45 млн FTP-серверов не обнаружено признаков использования шифрования. Проще говоря, данные там потенциально передаются в открытом виде, включая логины и пароли.

 

В Censys уточняют:

«Это не значит, что абсолютно все такие серверы точно "светят" трафик, но никаких признаков защищённого соединения при сканировании выявить не удалось. Причины могут быть разными — от устаревших настроек до полного отсутствия поддержки TLS».

География распределения ожидаемая: больше всего таких систем в США (около 1,2 млн), затем идут Китай, Германия, Гонконг, Япония и Франция. Значительная часть FTP-хостов размещена у крупных провайдеров и хостинг-компаний, включая China Unicom, Alibaba, OVH, Hetzner и GoDaddy.

 

Что касается «начинки», чаще всего встречается сервер Pure-FTPd — почти 2 млн установок. Далее идут ProFTPD и vsftpd. Отдельно выделяется IIS от Microsoft: около 259 тыс. FTP-сервисов работают на нём, и более 150 тыс. из них никогда не настраивали шифрование.

Что ещё удалось выявить специалистам:

  • почти 1 млн серверов вообще не поддерживают AUTH TLS;
  • более 800 тыс. запрашивают пароль до установления защищённого соединения;
  • свыше 170 тыс. не имеют явной поддержки TLS вовсе.

Всё это во многом результат «настроек по умолчанию» у хостинг-провайдеров и массовых сервисов. FTP просто включают — и оставляют как есть.

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