Критическая ошибка в сетевой маске npm затрагивает тысячи программ

Во многих случаях возникают проблемы, которые могут поставить под угрозу безопасность нашего оборудования. Это то, что влияет на все типы операционных систем, и мы должны исправить это. В этой статье мы повторяем ошибка в сетевой маске , считается критическим, что ставит под угрозу тысячи программ. Мы собираемся объяснить, в чем состоит эта проблема безопасности.

Критическая ошибка сетевой маски npm затрагивает тысячи приложений

Ассоциация маска подсети часто используется в сотнях тысяч приложений для анализа или сравнения адресов IPv4 и блоков CIDR. Следовательно, если есть какая-то проблема, некоторая уязвимость, это может подвергнуть риску многих пользователей. Этот компонент также имеет миллионы загрузок еженедельно.

Критическая ошибка в сетевой маске npm

Ошибка присутствует в библиотека npm и это означает, что когда анализируется IP-адрес с начальным нулем, сетевая маска видит другой IP-адрес из-за неправильных проверок. Это открытие сделали Виктор Виале, Sick Codes, Ник Салер, Келли Каудис и Джон Джексон. Они обнаружили ошибку в популярной библиотеке сетевых масок.

Уязвимость отслеживалась как CVE-2021-28918 . Это влияет на то, как сетевая маска обрабатывает IP-адреса смешанного формата, или, более конкретно, когда десятичный IPv4-адрес содержит начальный ноль.

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

Проблема в том, когда 0 появляется слева . В этом случае он интерпретирует IP-адрес как совершенно другой. Можем попробовать в браузере, с Chrome например, поставить IP 127.0.0.1. Если мы поместим 0 слева, он интерпретирует его как IP-адрес в восьмеричном формате, а при попытке ввода он изменится на его эквивалент в десятичном формате 87.0.0.1.

В случае сетевой маски npm эти ведущие нули просто удаляются и отбрасываются. По мнению исследователей безопасности, сетевая маска игнорирует это. Он всегда будет рассматривать части как десятичные числа, а это означает, что если мы попытаемся проверить принадлежность IP-адреса к диапазону, это будет неверно для восьмеричного представления адресов IPv4.

Что нужно сделать, чтобы обеспечить безопасность

Эта проблема влияет на безопасность

Как все это влияет на безопасность? Сначала эта ошибка может показаться незначительной, но если нападающий может повлиять на ввод IP-адреса, анализируемого приложением, ошибка может привести к нескольким уязвимостям. Здесь мы можем включить пропуски от спуфинга запросов на стороне сервера (SSRF) до удаленного управления.

Злоумышленник может, например, создать IP-адрес с некоторыми или всеми октетами в базе 8 в старом представлении JavaScript с префиксом 0. Эта ошибка может быть использована для удаленного включения файла в случае, если злоумышленник создает IP-адрес, который кажется частным для маска сети.

Имейте в виду, что для этой ошибки CVE-2021-28918 версия 2.0.0 сетевой маски был выпущен для исправления. Мы снова видим важность постоянного обновления наших систем и устройств. Только тогда мы сможем избежать проблем с безопасностью.