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

Сотрудники против: 52% компаний буксуют с переходом на тонкие клиенты

Переход на тонкие клиенты в российских компаниях чаще всего тормозит вовсе не техника, а люди. По данным опроса среди зрителей и участников эфира AM Live «Тонкий клиент: инструмент создания цифровых корпоративных рабочих мест», 52% компаний не могут полноценно перейти на такую модель из-за сопротивления сотрудников, привыкших к обычным компьютерам.

На этом фоне особенно показательно выглядит другая цифра: только 25% компаний уже используют удалённые рабочие места через десктопы или тонкие клиенты.

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

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

Впрочем, дело не только в привычках. Второй по популярности барьер — поддержка периферии, на неё пожаловались 46% опрошенных. Дальше причины идут уже с заметным отрывом: 32% считают проблемой высокую стоимость внедрения, 28% говорят о несовместимости приложений, 26% — о нехватке экспертизы у ИТ-команд, ещё 22% упомянули ограничения сети и каналов связи.

Некоторых экспертов такой высокий результат у пункта с периферией удивил, но в «Лаборатории Касперского» ничего необычного в этом не увидели. Старший менеджер по продукту Kaspersky Thin Client Михаил Левинский объяснил, что вопрос здесь упирается не только в сами устройства, но и в зрелость поддержки: у кого-то может быть старый монитор или нестандартная периферия, и важно, насколько быстро вендор готов на такие запросы реагировать. При этом, по его словам, сами операционные системы, конечно, должны нормально поддерживать проброс периферийных устройств.

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

При этом в обсуждении прозвучала и осторожно позитивная нота. Генеральный директор «АМ Медиа» Илья Шабанов заметил, что заметно сократилась доля тех, кто считает главным препятствием именно стоимость внедрения. Это может говорить о том, что рынок таких решений в России постепенно взрослеет, а сами технологии перестают восприниматься как что-то слишком дорогое и экзотическое.

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