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

Исходное сообщение
"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю"

Отправлено opennews , 02-Сен-21 22:52 
В NPM-пакете pac-resolver, насчитывающем более 3 млн загрузок в неделю, выявлена уязвимость (CVE-2021-23406), которая позволяет добиться выполнения своего JavaScript-кода в контексте приложения при отправке HTTP-запросов из Node.js-проектов, поддерживающих функцию автонастройки прокси-сервера...

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


Содержание

Сообщения в этом обсуждении
"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено InuYasha , 02-Сен-21 22:52 
По предварительным расчётам, за полгода уязвимость охватывает всё население Мидгарда )

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 02-Сен-21 22:53 
Надоже, даже без работы с памятью. Кто бы сомневался. Толи ещё Rust ожидает.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Ordu , 03-Сен-21 00:26 
> Надоже, даже без работы с памятью.

Зато с eval'ом.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 11:57 
Просто был бы дырявый софт на Rust. Те же яйца только в профиль и большим количеством разных скобочек [{(<.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 02-Сен-21 22:55 
> Проблема устранена в выпуске pac-resolver 5.0.0, который переведён на использование библиотеки vm2, предоставляющей уровень изоляции для запуска не заслуживающего доверие кода.

Эта проблема решается выкидыванием всех этих NPM и им подобных каргоф. ДНК конечно поврежденно навсегда, но есть благотварительные организации которые таких хотябы изолируют.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 02-Сен-21 23:03 
Я правильно тебя понял, ты предлагаешь писать код без библиотек вообще? Или у тебя есть гарантия того, что та либа, которую ты взял без некоторого менеджера зависимостей, неуязвима?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 02-Сен-21 23:30 
> писать код без библиотек вообще?

Сейчас библиотеки такие, что сложность написания кода без них гораздо ниже, чем использовать их.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 01:12 
Сразу видно, что ничего сложнее hello world в жизни не писал.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Ag , 03-Сен-21 07:50 
Хм, "hello, world" без библиотеки ввода-вывода.. ну это только на Assembler-е. И чур (на x86) без ф-ций BIOS.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено andy , 03-Сен-21 11:57 
> Хм, "hello, world" без библиотеки ввода-вывода.. ну это только на Assembler-е. И чур (на x86) без > ф-ций BIOS.

В современных, многозадачных, операционных системах, Вам не дадут из защищенного режима вызывать функции BIOS. К примеру, в Linux'е, вам следует воспользоваться int80h для x86, либо вызовом syscall для x86-64.
https://packagecloud.io/blog/the-definitive-guide-to-linux-s...


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:02 
И ты гарантируешь отсутсвие уязвимостей в этом своем коде без библиотек?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 04-Сен-21 18:08 
Не в ту сторону воюете
Против библиотек никто не выступал
И есть разница между уникальной уязвимостью одного проекта и массовой

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено And , 03-Сен-21 08:25 
> Я правильно тебя понял, ты предлагаешь писать код без библиотек вообще? Или у тебя есть гарантия того, что та либа, которую ты взял без некоторого менеджера зависимостей, неуязвима?

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

Что с библиотеками, что без библиотек... JS - это как Жигули - на вид приемлемо, в эксплуатации - есть много людей, которые обучены производить несравненно более качественные в применении продукты жизнедеятельности.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 10:32 
В изначальном сообщении написано следующее

> проблема решается выкидыванием всех этих NPM и им подобных каргоф

Под "подобные карги" попадают так же всякие maven, cpan, conan и прочее выполняющее управление зависимостями. Сообщение анона говорит, что это не нужно, тогда библиотеками нужно рулить руками или не использовать библиотеки. Но разве от того, что библиотека завезена в проект руками, появляется больше гарантии на отсутсвие уязвимости в них? Или появляется больше гарантии, что в твоем велосипеде этих уязвимостей нет?


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:06 
Жаль что тебя не изолировали

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Ненавижу SJW , 03-Сен-21 09:13 
Ага-ага. Ты и сам не юзаешь сторонние библиотеки или только советуешь?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 04-Сен-21 18:09 
Там было хоть слово против библиотек?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено бедный буратино , 03-Сен-21 00:18 
Всегда такое было, и вот опять.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Dzen Python , 03-Сен-21 00:36 
Вау! В eval-языке нашли "уязвимость" - он может исполнить код, пришедший как данные!

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноньимъ , 03-Сен-21 01:13 
Кому-то показалось хорошей идеей автоматически выполнять код пришедший как данные из случайного источника.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 04-Сен-21 18:11 
Их сейчас с js на rust переучивают ускоренно, чтоб в ядро коммитили

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноньимъ , 03-Сен-21 01:12 
>Указанный API явно помечен в документации как не предназначенный для запуска кода, не заслуживающего доверия, так как он не предоставляет полноценной изоляции запускаемого кода и позволяет получить доступ к изначальному контексту. Проблема устранена в выпуске pac-resolver 5.0.0, который переведён на использование библиотеки vm2, предоставляющей более высокий уровень изоляции, подходящий для запуска не заслуживающего доверия кода.

Я правильно понимаю, что проблему устранили указанием в документации что API теперь предназначено для запуска не заслуживающего доверия кода?

>PAC-файл содержит обычный JavaScript-код с функцией FindProxyForURL, определяющей логику выбора прокси в зависимости от хоста и запрашиваемого URL. Суть уязвимости в том, что для выполнения данного JavaScript-кода в pac-resolver применялся предоставляемый в Node.js API

Чего блин?
Загружать хрен пойми откуда код и выполнять его У СЕБЯ НА СЕРВЕРЕ/приложении чтобы настроить прокси?
Что происходит?
Что это за нафиг такой?
Остановите это немедленно!


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено пох. , 03-Сен-21 10:12 
> Загружать хрен пойми откуда код и выполнять его У СЕБЯ НА СЕРВЕРЕ/приложении чтобы настроить прокси?
> Что происходит?

обычная настройка wpad происходит. Стандарт netscape 1996го года. Платформенно независимое решение чтоб не бегать всем юзверькам не настраивать вручную.

wpad.dat - таки да, содержит js код. Предназначен для выполнения _браузером_ , который вообще рассчитан на выполнение непойми откуда кодов.

Попутно у одной корпорации зла есть в dns-сервере интересный костылик, не позволяющий первому попавшемуся васяну раздать по всей твоей организации такой файлик. Но то ж корпорация, зла. А в твоем любимом systemd-allshitd - нету костылика. Весь мусор с пола - сразу в рот.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноньимъ , 03-Сен-21 18:03 
>обычная настройка wpad происходит.
>wpad

Сжечь.

>wpad.dat - таки да, содержит js код. Предназначен для выполнения _браузером_ , который вообще рассчитан на выполнение непойми откуда кодов.

Там есть какое-то оправдание хотя бы для того чтобы вместо настроек прокси выдавать жс код?


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено пох. , 03-Сен-21 19:12 
Ты тоже разработчик, что-ли? Пойти и прочитать документацию - не?

Код возвращает настройку прокси - отдельно для каждого возможного и невозможного урла, потому что, внезапно, они могут отличаться для разных адресов. Расскажи мне, как это сделать универсальным образом без скриптов?

И дальше - о ужас, вообще сайт откроется! Вполне возможно - в ИНТЕРНЕТЕ! Который тоже может выполнить в твоем браузере - код!

Разница в том, что модные-современные веб-макакеры притащили технологию, предназначенную для исполнения исключительно браузером (где этот код был тщательно ограничен в возможностях что-то пощупать вне браузера) - в саму систему. Поскольку изучить языки отличные от js уже были не в силах.

А набор ограничений оставили по дороге - потому что нахрен бы был такой код не нужен никому (вспомним жаба-аплеты которые ничего толком не умели делать именно потому что ничего и не могли)

Теперь вот - костылят подпорки уже на самом js. Получается не всегда.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноньимъ , 03-Сен-21 19:31 
> Код возвращает настройку прокси - отдельно для каждого возможного и невозможного урла,
> потому что, внезапно, они могут отличаться для разных адресов. Расскажи мне,
> как это сделать универсальным образом без скриптов?

А как это делает этот скрипт?
Просто списка с фильтром по регуляркам недостаточно?

>И дальше - о ужас, вообще сайт откроется! Вполне возможно - в ИНТЕРНЕТЕ! Который тоже может выполнить в твоем браузере - код!

Этот код как бы обычно остаётся в песочнице бравзера и не изменяет настройки бравзера.
Тоже скотство конечно.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено another_one , 04-Сен-21 09:45 
> Я правильно понимаю, что проблему устранили указанием в документации что API теперь предназначено для запуска не заслуживающего доверия кода?

В документации было и осталось предупреждение, что не через vm нельзя запускать недоверенный код. А проблему устранили переводом pac-resolver на стороннюю либу vm2, в которой крайне огороженная песочница с ограниченным доступом к текущему runtime.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 05:11 
Ура!!! 3 миллиона уязвимостей по всему миру!

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Какаянахренразница , 03-Сен-21 07:54 
Да не может такого быть!

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено And , 03-Сен-21 08:04 
> Указанный API явно помечен в документации как не предназначенный для запуска кода, не заслуживающего доверия, так как он не предоставляет полноценной изоляции запускаемого кода и позволяет получить доступ к изначальному контексту.

Красивая халтура. (Такое не публикуют, или код плохой. Это тот признак, по которому 3 млн. загрузок в неделю не справляются с правильным долгосрочным выбором технологии.)


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:25 
Неужели Node.js всё еще кто-то использует?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:34 
Технологии на базе Жабасрипта рулят.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:34 
Да, ёжики.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Node js , 03-Сен-21 10:00 
Дурак! Это я вас пользую!

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 08:57 
Зачем 3 млн юзеров в неделю парсят PAC файлы?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 09:04 
Это автоматические загрузки по дереву нпм-зависимостей. Юзеры даже не в курсе.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено anonymous , 03-Сен-21 09:40 
Воистину по дереву.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено 1 , 03-Сен-21 09:37 
leftpad ... такой leftpad

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Node js , 03-Сен-21 10:02 
> Зачем 3 млн юзеров в неделю парсят PAC файлы?

а кто их спрашивал-то?!


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноньимъ , 03-Сен-21 15:02 
>> Зачем 3 млн юзеров в неделю парсят PAC файлы?
> а кто их спрашивал-то?!

Подробности интересны.

Какие конкретно либы и для чего.


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 11:58 
Можно подумать в этом вашем Пэйтоунэ не так же.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Какаянахренразница , 03-Сен-21 12:07 
Слабенькая отмазка.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Алексей , 03-Сен-21 14:16 
> PAC-файл содержит обычный JavaScript-код

Это по определению "программа из одной строки на Perl", то есть JavaScript. Ровно с теми же последствиями. Только тут не нужно дурака перед клавиатурой, браузер скачает и запустит автоматически. Какая прелесть.



"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 04-Сен-21 18:20 
Не понял, но осуждаю?

Браузер как и пользователь вообще не причем
Выполняет nodejs, само
Потому что взяли кусок браузерной технологии, где оно к месту и всё хорошо, и вкорячили на сервер, где оно дырка


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 18:21 
Нужен meta npm с рейтингом модулей. За уязвимости рейтинг само собой снижать.

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено пох. , 03-Сен-21 19:14 
> Нужен meta npm с рейтингом модулей. За уязвимости рейтинг само собой снижать.

повышать же ж! Кто не сидел тот не паца...ой, простите, окошком ошибся. В ком не нашли еще увизгвимостей - тот значит 100% ненужное ненужно!


"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Аноним , 03-Сен-21 19:49 
кто сказал, что это уязвимость?

"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн за..."
Отправлено Онаним , 03-Сен-21 23:41 
Любителей тянуть в рот всё свеженькое из непонятных источников опять поимели. Впрочем, так им и надо.