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

Windows 11 проиграла всем: XP, 7 и 8.1 оказались быстрее

Windows 11 давно не балуют комплиментами — её ругают за прожорливость, жёсткие требования к железу, странные интерфейсные решения и всё более навязчивые сервисы Microsoft. И вот масла в огонь подлил ютубер TrigrZolt, который устроил довольно жестокое сравнение сразу шести поколений Windows — от XP до 11. Спойлер: новейшая система почти везде оказалась аутсайдером. Но, как обычно, есть нюансы.

Для эксперимента взяли шесть одинаковых Lenovo ThinkPad X220 с процессором Core i5-2520M, 8 ГБ ОЗУ и обычным жёстким диском на 256 ГБ.

На каждый ноутбук поставили «последнюю возможную» версию своей Windows — от XP до 11. Уже на этом этапе понятно, что условия максимально благоприятны для старых ОС: Windows 11 официально такое железо вообще не поддерживает.

Тем не менее тесты стартовали. В загрузке системы быстрее всех оказалась Windows 8.1, а вот Windows 11 — самой медленной. Более того, у неё заметно «задумалась» панель задач — фирменная проблема, знакомая пользователям с релиза системы.

 

По занимаемому месту на диске ожидаемо победила Windows XP — всего 18,9 ГБ со всеми программами. Windows 11 заняла 37,3 ГБ и оказалась лишь третьей… уступив даже Vista и Windows 7. Да, лишнего в системе стало заметно больше.

С оперативной памятью ситуация ещё печальнее. Windows XP в простое довольствовалась 0,8 ГБ, а Windows 11 спокойно съедала 3,3–3,7 ГБ. Причина банальна — фоновые сервисы и телеметрия. На старом железе это напрямую превращается в тормоза.

 

Во втором этапе ОЗУ-теста проверяли, сколько вкладок браузера система выдержит до 5 ГБ использования памяти. Здесь Windows 11 снова оказалась последней — 49 вкладок. Для сравнения: Windows 8.1 осилила 252. Даже XP дошла до 50 — просто дальше начинала падать, а не упиралась в лимит.

По автономности Windows 11 тоже «умерла» первой, а XP показала лучший результат. Правда, разница составила всего пару минут, так что в реальной жизни это почти ни на что не влияет.

Экспорт аудио в Audacity, рендер видео, запуск приложений — почти везде Windows 11 стабильно оказывалась внизу таблицы. Она проиграла даже в таких простых задачах, как открытие Проводника, Калькулятора или Paint. В веб-тестах ситуация была чуть лучше, но ненадолго. Из приятных исключений — высокая скорость копирования файлов (второе место после Windows 10).

В бенчмарках картина не сильно изменилась: Windows 11 держалась в середине, но первые места не брала. CPU-Z, Cinebench, Geekbench — везде либо четвёртое место, либо борьба за то, чтобы не оказаться последней.

Итог выглядит разгромно: Windows 11 не выиграла ни одного теста. Но даже сам автор подчёркивает — это скорее исторический эксперимент, чем практическое сравнение. Использовать современную ОС на ноутбуках 2011 года с HDD — идея сомнительная. На актуальном железе с NVMe-SSD и свежими процессорами Windows 11 чувствует себя заметно бодрее, а часть проблем легко сглаживается настройками и «деблоатом».

Любопытно, что общую победу TrigrZolt отдал Windows 8.1 — системе, которую в своё время нещадно критиковали. По его словам, она оказалась неожиданно быстрой, плавной и при этом визуально не такой уж далёкой от Windows 10 и 11.

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