URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 123743
[ Назад ]

Исходное сообщение
"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тысячах проектах"

Отправлено opennews , 29-Мрт-21 11:22 
В  NPM-пакете node-netmask, насчитывающем около 3 млн загрузок в неделю и используемом в качестве зависимости у более 270 тысяч проектов на GitHub, выявлена  уязвимость (CVE-2021-28918), позволяющая обойти проверки, в которых сетевая маска используется для определения вхождения в диапазоны адресов или для фильтрации. Проблема устранена в выпуске node-netmask 2.0.0...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=54857


Содержание

Сообщения в этом обсуждении
"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Леголас , 29-Мрт-21 11:22 
никогда не было и вот опять ©

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:53 
Никаких 127.0.0.1 в приличных системах быть не должно !

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:53 
ровно как и nodejs

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено валяйте , 29-Мрт-21 19:42 
Как избавиться предлагаеш от 127..0.0.1?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено B , 30-Мрт-21 19:16 
>> 127..0.0.1

заменить ".." на "."?


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Dzen Python , 29-Мрт-21 13:19 
Люблю эти Черномырдинки

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено имятакое , 29-Мрт-21 11:23 
вот это не понял.

"0177.0.0.1", которое соответствует "127.0.0.1"

поясните пожалуйста


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Ононимус , 29-Мрт-21 11:27 
Восьмеричная запись начинается с нуля

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:28 
0177 - восьмиричная система счисления
переводим в 10-ю и получаем 127

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено A.Stahl , 29-Мрт-21 11:30 
0 в начале числа по традиции у программистов означает 8-ричную систему счисления. 177 в восьмеричной равно 127 в десятичной.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Lex , 29-Мрт-21 12:15 
Странная традиция
Для интереса посмотрел що в жс как записывается( все начинается с нуля, далее исчисление и само число что гораздо универсальней и наглядней ):

Бинарные - 0b11 ( 3 )
Восьмеричные - 0o11 ( 9 )
Шестнадцатеричные - 0x11 ( 17 )

Хотя и начинание с нуля тож работает - число воспринимается как восьмеричное.. и даже если тех нулей с десяток )


"Странная традиция"
Отправлено userd , 29-Мрт-21 12:49 
Кто писал на C, тот привык.
C появился на PDP-11, там восьмеричная система счисления была много популярнее шестнадцатеричной.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:33 
$ ping 0177.0.0.1

PING 0177.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Леголас , 29-Мрт-21 11:39 
- поясните пожалуйста, почему это равно этому
- да, смотри, это равно этому

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:00 
Потому что потому (с)

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено userd , 29-Мрт-21 12:19 
Для полноты картины нужно попинговать 0x7F.0.0.1 , 0x7f.1 , 0x7F000001 , 017700000001 и 2130706433 .

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Tester , 29-Мрт-21 15:18 
А ведь работает даже под виндой.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено anonymous , 29-Мрт-21 12:15 
oct -> dec

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:10 
oct -> nov -> dec, неуч

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Ыыы , 29-Мрт-21 17:22 
Почему католические программисты путают Хеллоуин и Рождество?
Потому, что Oct 31 === Dec 25

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:39 
Было большой ошибкой додуматься до включение восьмеричных чисел в спецификации IP-адресов, которые было очевидно чо в будущем никто читать не будет?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:42 
Авторы спеков "так видят", пойми. Скажи спасибо еще римские цифры не добавили.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено gogo , 29-Мрт-21 14:50 
Для своих целей восьмиричные числа весьма наглядные.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:36 
Обезьянки взяли спеки, и написали "по спекам", как привыкли.
В реальном мире всё оказалось гораздо неожиданнее.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 17:26 
> было большой ошибкой додуматься...

Ваша способность выявлять ошибки вызывает сомнения


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 11:58 
В ipv6 такая же ситуация?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:11 
Другая.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:01 
Зевнул.
Уже даже не смешно.
Норма для ноды, руби и прочих растов с композерами.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:12 
Дело не в ноде, а коде inet_aton на C который изначально нарушал стандарт.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:29 
Именно - дело в коде.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Урри , 29-Мрт-21 13:04 
а можно детальнее - какой именно стандарт и в чем?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:14 
Ну вот ссылка в статье есть на спецификацию
https://tools.ietf.org/html/draft-main-ipaddr-text-rep-02

>>Meanwhile, a very popular implementation of IP networking went off in its own direction.
>>  The 4.2BSD inet_aton() has been widely copied and imitated, and so is a de facto standard for the textual representation of IPv4 addresses.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено 1 , 29-Мрт-21 13:47 
de facto standard
Это и не стандарт вовсе, а "так принято".

А стандарт допускает и десятеричное число в качестве ip адреса.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:58 
Какие еще стандарты, там галимотья на кофескрипте конвертящая тупостроки. Афтор небось и не слышал ни про какие inet_aton() за все свои 14 лет жизни.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:03 
Если задача стояла конвертить строки, то логично что работа идёт в т числе и со строками. Не вижу в этом проблему. А то что автор не смотрел на inet_aton это хорошо, потому что это как раз с него не надо брать пример.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 15:42 
Ну еслиб тебя не роняли в детстве на голову так часто - то смог бы осилить айпи адресацию и понимал  как это работает, а не нёс пургу в духе "если там строки то в том числе и строки"

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 30-Мрт-21 09:15 
Если бы тебя не роняли в детстве, ты бы не писал чушь в комментариях

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Урри , 29-Мрт-21 17:13 
Не вижу нарушения. Может подскажете где именно?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Онаним , 29-Мрт-21 14:23 
Дело снова в отсутствии полноценной валидации входных данных.
То есть в кривых руках.
А заодно - в избыточном доверии к стороннему говнокоду.
То есть снова в кривых руках.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 02-Апр-21 22:13 
На Руби не гони, э.
https://ideone.com/H0ewsR

Тут вам не питонжсы.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тысячах проектах"
Отправлено Анонимно Аффтор , 29-Мрт-21 12:03 
Магия и остроумие костыликов: сделать просто - договориться о волшебном значении нуля в начале строки.

А чё, простое и остроумное решение. И сколько ж встречено  таких кроильщиков...

Кроилово ведёт к попадалово.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тысячах проектах"
Отправлено ryoken , 29-Мрт-21 15:12 
Вы таки будете смеяться, но если в вендовой командной строке так что-то попинговать - будет соответствие RFC и пинги поедут на 8-ричный адрес :D.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тысячах проектах"
Отправлено Анонимно Аффтор , 29-Мрт-21 16:07 
Поинт в другом. Сокрытие настоящего типа объекта приводит к внезапности.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:07 
Вот они удивятся когда узнают что можно не только восьмеричные писать, но и 16-ричные
ping 0x7F.0x0.0x0.0x1

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:03 
Ээээ слушай, канчай шатать наша вселенная нода жс да !

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Леголас , 29-Мрт-21 13:29 
господа нодисты открыли ящик Пандоры

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 15:13 
Нее. Тот ящик на всех подействовал. И был чужим.
А эти сами себе всё делают.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 12:11 
Я пробежал указанный документ. Из него следует что это не особо и то и вина разрабов пакета.

>> So far we've seen two parallel versions of IPv4 address textual

   syntax.

То есть сделали по стандарту. А вот этих стандартов куча и даже больше.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Посылатель нахер , 29-Мрт-21 12:46 
Забавно смотреть как поступи ничего из себя не представляющие обитатели местного зоопарка хейтят платформу столь сильно оказывающую влияние на развитие индустриии. Уязвимость даже не в самой платформе а в пакете, пакетный менеджер работает аналогично всем остальным в других платформах. Но нет, побомбить то принято именно с ноды. В святом расте то такое уж точно недопустимо.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:44 
Уж больно есть что плохого в платформе.

Да. Повлияла на индустрию. Но мир внутри мог бы быть лучше. Увы и ах.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 15:44 
> Да. Повлияла на индустрию

нет


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Твой батя , 29-Мрт-21 21:36 
Одинэсника ответ

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Твой батя , 29-Мрт-21 21:37 
А мог быть и хуже. Назови любой язык и я его обосру. Толку то?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 30-Мрт-21 16:35 
rust, фас !

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:45 
На всех (двух) нормальных языках в природе. Пакетный менеджер так не работает (да его и нет)

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Твой батя , 29-Мрт-21 21:39 
Не пишешь эти два языка во избежание унижения?)

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено mymedia , 29-Мрт-21 13:03 
> Исследователи лишь предполагают, что владельцы 87.0.0.1 (Telecom Italia) и 177.0.0.1 (Brasil Telecom) имеют возможность обойти ограничение доступа к 127.0.0.1.

Не только эти два указанных реальных IP могут обойти проверку. Получается, любые адреса в данных подсетях размера /8, могут обращаться к локалхосту за node-netmask. Так 0177.0177.0177.0177 превратится в 127.127.127.127, а это как раз локальный хост.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено B , 30-Мрт-21 19:24 
А на авторов либы гоните. Тут свою гений RUSTут!

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:16 
А если ещё с шестнадцатеричными поиграться...

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:17 
В новом коде насчёт 16-ричных систем тоже баг https://github.com/rs/node-netmask/issues/37
Так что ждём очередного обновления

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Онаним , 29-Мрт-21 14:24 
Муахах блдажд.
Называется - footmade code.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:29 
Других программистов на ноде у нас нет.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Онаним , 29-Мрт-21 14:25 
И не надо.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 21:30 
Либу писали кофескриптисты, не надо их примешать к нодистам.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Noname , 30-Мрт-21 13:24 
Сорта

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 30-Мрт-21 16:23 
руби

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено onanim , 29-Мрт-21 13:35 
>  В приложении при оценке правил доступа не будет определена тождественность с "127.0.0.1" и ресурс будет загружен с "0177.0.0.1" (фактически с 127.0.0.1), несмотря на запрет обращения к адресам loopback-интерфейса.

это проблема не в node, а вообще во всех языках.
проверка if ($IP != "127.0.0.1") выдаст true для строки вида "0177.0.0.1", но по факту подключение-то будет к 127.0.0.1, а не к 177.0.0.1.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:58 
> проверка if ($IP != "127.0.0.1") выдаст true

и для строки вида "127.0.00.1". Сравнивать строковые представления ip адресов — проблема явно не в языках.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено onanim , 29-Мрт-21 13:59 
... так что проверять юзерский инпут нужно не только на неравность строке "127.0.0.1", но и что это вообще является IP адресом, а не неведомой бинарной фигнёй с кавычками и спецсимволами.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено пох. , 29-Мрт-21 17:08 
А чо не так-то в моем юзерском инпуте ? Как по мне - норм же ж ip-адрес?!
linups:~> ping 0x7f.0.0.1
PING 0x7f.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.036 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.064 ms
^C
--- 0x7f.0.0.1 ping statistics ---
Всегда ж так пингую

Вот додуматься сравнивать их как СТРОКИ - это действительно какие-то уникальные грибы у этих ребят уродились. Не надо таких жрать, а то так и останешься поехавшим.

Ну и просто прекрасно именно то, что такой костылекод используется примерно везде, где они работают с адресами.

Помнити npm leftpad!


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:44 
Скажу крамольную, на данном сайте вещь. Но даже сам великий и ужасный Раст не помог бы защититься от такой уязвимости.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 13:50 
Писатели на расте никогда бы не написали код, который строится на допущении, что IP-адрес - это десятичные числа, разделенные точками.

Нужно быть совсем непроцарапанной макакой, чтобы срезать ведущий ноль. Это в языке, где встроенный Number парсит восьмеричные по признаку ведущего нуля и во всех книгах про это в самом начале. То есть либу писали люди, не знающие даже сам джаваскрипт. Это нонсенс.
Надо конкретных программистам волчий билет за такое выдать.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:47 
Стандарт допускает восьмеричные числа в айпи-адресе.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 18:34 
println!("{:?}", "0177.0.0.1".parse::<Ipv4Addr>());

Ok(177.0.0.1)


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 20:02 
0177.0.0.1 даже стандартная регулирочка из всех книжек по программированию не пропустит. Никто не ожидает что в адресе будут какие то  восьмиричные числа.
Кроме анонимных опеннет экспертов, конечно.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено 1 , 29-Мрт-21 13:51 
не вижу в этом уязвимости.
Просто нормальное поведение преобразования адреса.

А кто там себе напридумывал, что локалхост это "^127" пусть обламаются.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Анонимъ , 29-Мрт-21 15:09 
От кривых рук спасает только ампутация. Да и вообще, с чего вы взяли, что Rust что-то там кому-то обещает? Единственная заслуга Rust - это возможность делать некоторые проверки на этапе компиляции.

А так: https://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.ht...


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:48 
Это фракталята тут постоянно вещают. Сами не знают о чем.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:54 
Точно? У rust есть поддержка up адресов в стандартной библиотеке. Вроде бы. У java точно есть. У питона даже маски есть. А у js нет ничего

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:55 
Ip адресов

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено пох. , 30-Мрт-21 10:02 
Дык, вот такая поддержка у них и есть:  "Проблеме подвержена стандартная библиотека std::net::Ipv4Addr языка Rust"

Ну с чего бы хрустерам уметь думать в голову. Они ж туда едят!


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:01 
В защиту JS могу сказать, что багованный код написан был НЕ на JavaScript.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:32 
"Уязвимость = NPM-пакет".

Предлагаю всем заучить эту формулу.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 14:50 
Если бы это была уязвимость, то обновление вышло бы как 1.0.7.
А это явно фича, и пакет теперь 2.0.0.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено gogo , 29-Мрт-21 14:57 
Точно. Чтобы у те, кто хочет оставить себе этот баг в системе, могли не апдейтить зависимость на версию 2.х

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:51 
Так может у них код приложения именно так и написан чтобы эта либа принимала восьмеричные значения. Чтобы ничего не ломать надо повышать версию.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:36 
С годоми уровень программеров очень упал.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 16:51 
Больше кода больше багов. Не надо грязи.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:28 
Базовая, либсишная функция со времен появления айпи. Откуда его вдруг за пол века стало больше ?

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:00 
ребят, а как же говорили что Линукс, ГНУ, Опенсурс - это надежно, нет бакдоров, суперсекюрити, потому что тысячи глаз смотрят код, он открытый, это гарантирует, что он в тысячу раз лучшее и надежнее, чем закрытый Уиндоус. Как же так? Неужели врали все эти десятки лет??!

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 23:52 
Тысячи глаз и нашли. Обновись просто. В npm выводит предупреждения, если есть vulnerable

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 30-Мрт-21 15:05 
> ребят, а как же говорили что Линукс, ГНУ, Опенсурс - это надежно, нет бакдоров, суперсекюрити, потому что тысячи глаз смотрят код,

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


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:21 
Кучу валидаторов писала и не знала об этом.

"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Noname , 30-Мрт-21 13:53 
Так задача ж была валидатор писать, а не знать.

Чё не так- то?


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 29-Мрт-21 19:30 
Это даже уязвимостью назвать нельзя.

Библиотека явно предполагает на входе IP-адрес в десятичном формате, и не заявляет, что занимается валидацией. Не провалидировал - сам себе буратино. Типичный gargabe in - garbage out.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено пох. , 30-Мрт-21 09:42 
> Библиотека явно предполагает на входе IP-адрес в десятичном формате,

и плевать что ее единственная задача - преобразование форматов.
Ну оок.

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

Ведь на ноде-макакс нельзя самому в три строки уместить то же самое, надо обязательно втянуть список зависимостей на две страницы.

И продолжим сравнивать ip адреса как строки.


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено PnD , 30-Мрт-21 11:43 
Что-то мне никак не хватает воображения представить эксплоит.
Типовая задача "прикрыть что-то ACL" предполагает что какие надо CIDR пишет администратор системы. Да хоть "0x7F000000/8", если его библиотека такое переваривает (и коллеги не поколотят).

С другой стороны, адрес прилетевшего v4-пакета прописан 32 битами без знака. И ничего там не нахимичишь. Если только "сетевой" порядок с "обычным" перепутать. Но такие ляпы уже́ много лет как покрыты тестами.

Что остаётся? Системы, в которых пользователю разрешено что-то заслать на адрес. E.g. looking-glass. Но там адрес можно вколотить любой "by design" и это не дыра.

Или какие-то наркоманы конвертят uint32 в oct-строку и потом её сравнивают? Тогда "огласите весь список, пожалуйста".


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Чолхан , 30-Мрт-21 13:49 
где-то в глубине используемых шелловых сценариев для таких случаев применяется sipcalc - он не дает себя обмануть:

            Address must be given in the "standard" dotted quad format, ie.: xxx.xxx.xxx.xxx with an optional netmask that can be given in three different ways:
               - CIDR, ex. /n where n >= 0 <= 32.
               - Dotted quad, ex. xxx.xxx.xxx.xxx.
               - A hex value, ex 0xnnnnnnnn or nnnnnnnn.


  
sipcalc 0177.0.0.1
-[int-ipv4 : 0177.0.0.1] - 0

-[ERR : Unable to retrieve interface information]

-

-------
sipcalc 127.0.0.1
-[ipv4 : 127.0.0.1] - 0

[CIDR]
Host address            - 127.0.0.1
Host address (decimal)  - 2130706433
Host address (hex)      - 7F000001
Network address         - 127.0.0.1
Network mask            - 255.255.255.255
Network mask (bits)     - 32
Network mask (hex)      - FFFFFFFF
Broadcast address       - 127.0.0.1
Cisco wildcard          - 0.0.0.0
Addresses in network    - 1
Network range           - 127.0.0.1 - 127.0.0.1

-


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Chupaka , 31-Мрт-21 11:25 
> Например, атакующий может запросить ресурс, указав значение "0177.0.0.1", которое в десятичном представлении соответствует "127.0.0.1"

А, напомните, почему атакующий не может просто запросить ресурс, указав значение "127.0.0.1", раз уж ему дали разрешение указывать значения?..


"Уязвимость в NPM-пакете node-netmask, применяемом в 270 тыся..."
Отправлено Аноним , 03-Апр-21 21:29 
«в 270 тысячах проектОВ»