The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от InuYasha (??), 02-Сен-21, 22:52   +4 +/
По предварительным расчётам, за полгода уязвимость охватывает всё население Мидгарда )
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Аноним (2), 02-Сен-21, 22:53   +10 +/
Надоже, даже без работы с памятью. Кто бы сомневался. Толи ещё Rust ожидает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #34

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #19, #26

4. Сообщение от Аноним (4), 02-Сен-21, 23:03   –1 +/
Я правильно тебя понял, ты предлагаешь писать код без библиотек вообще? Или у тебя есть гарантия того, что та либа, которую ты взял без некоторого менеджера зависимостей, неуязвима?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #5, #21

5. Сообщение от Аноним (5), 02-Сен-21, 23:30   +3 +/
> писать код без библиотек вообще?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #10, #17

6. Сообщение от бедный буратино (ok), 03-Сен-21, 00:18   +2 +/
Всегда такое было, и вот опять.
Ответить | Правка | Наверх | Cообщить модератору

7. Сообщение от Ordu (ok), 03-Сен-21, 00:26   +3 +/
> Надоже, даже без работы с памятью.

Зато с eval'ом.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

8. Сообщение от Dzen Python (ok), 03-Сен-21, 00:36   +2 +/
Вау! В eval-языке нашли "уязвимость" - он может исполнить код, пришедший как данные!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32, #48

10. Сообщение от Аноним (10), 03-Сен-21, 01:12   +7 +/
Сразу видно, что ничего сложнее hello world в жизни не писал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #15

11. Сообщение от Аноньимъ (ok), 03-Сен-21, 01:13   +1 +/
Кому-то показалось хорошей идеей автоматически выполнять код пришедший как данные из случайного источника.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #51

14. Сообщение от Аноним (14), 03-Сен-21, 05:11   +1 +/
Ура!!! 3 миллиона уязвимостей по всему миру!
Ответить | Правка | Наверх | Cообщить модератору

15. Сообщение от Ag (ok), 03-Сен-21, 07:50   +2 +/
Хм, "hello, world" без библиотеки ввода-вывода.. ну это только на Assembler-е. И чур (на x86) без ф-ций BIOS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #35

16. Сообщение от Какаянахренразница (ok), 03-Сен-21, 07:54   +/
Да не может такого быть!
Ответить | Правка | Наверх | Cообщить модератору

17. Сообщение от Аноним (4), 03-Сен-21, 08:02   +3 +/
И ты гарантируешь отсутсвие уязвимостей в этом своем коде без библиотек?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #49

18. Сообщение от And (??), 03-Сен-21, 08:04   –1 +/
> Указанный API явно помечен в документации как не предназначенный для запуска кода, не заслуживающего доверия, так как он не предоставляет полноценной изоляции запускаемого кода и позволяет получить доступ к изначальному контексту.

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

Ответить | Правка | Наверх | Cообщить модератору

19. Сообщение от Аноним (19), 03-Сен-21, 08:06   +/
Жаль что тебя не изолировали
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

20. Сообщение от Аноним (20), 03-Сен-21, 08:25   –3 +/
Неужели Node.js всё еще кто-то использует?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #22, #23, #30

21. Сообщение от And (??), 03-Сен-21, 08:25   –1 +/
> Я правильно тебя понял, ты предлагаешь писать код без библиотек вообще? Или у тебя есть гарантия того, что та либа, которую ты взял без некоторого менеджера зависимостей, неуязвима?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #33

22. Сообщение от Аноним (-), 03-Сен-21, 08:34   –4 +/
Технологии на базе Жабасрипта рулят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

23. Сообщение от Аноним (5), 03-Сен-21, 08:34   +/
Да, ёжики.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

24. Сообщение от Аноним (24), 03-Сен-21, 08:57   +/
Зачем 3 млн юзеров в неделю парсят PAC файлы?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25, #28, #31

25. Сообщение от Аноним (25), 03-Сен-21, 09:04   +1 +/
Это автоматические загрузки по дереву нпм-зависимостей. Юзеры даже не в курсе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #29

26. Сообщение от Ненавижу SJW (?), 03-Сен-21, 09:13   +/
Ага-ага. Ты и сам не юзаешь сторонние библиотеки или только советуешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #50

28. Сообщение от 1 (??), 03-Сен-21, 09:37   –1 +/
leftpad ... такой leftpad
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

29. Сообщение от anonymous (??), 03-Сен-21, 09:40   +1 +/
Воистину по дереву.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

30. Сообщение от Node js (?), 03-Сен-21, 10:00   +1 +/
Дурак! Это я вас пользую!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

31. Сообщение от Node js (?), 03-Сен-21, 10:02   +/
> Зачем 3 млн юзеров в неделю парсят PAC файлы?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #39

32. Сообщение от пох. (?), 03-Сен-21, 10:12   +1 +/
> Загружать хрен пойми откуда код и выполнять его У СЕБЯ НА СЕРВЕРЕ/приложении чтобы настроить прокси?
> Что происходит?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #40

33. Сообщение от Аноним (4), 03-Сен-21, 10:32   +/
В изначальном сообщении написано следующее

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

34. Сообщение от Аноним (34), 03-Сен-21, 11:57   +1 +/
Просто был бы дырявый софт на Rust. Те же яйца только в профиль и большим количеством разных скобочек [{(<.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

35. Сообщение от 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...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

36. Сообщение от Аноним (34), 03-Сен-21, 11:58   +/
Можно подумать в этом вашем Пэйтоунэ не так же.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #37

37. Сообщение от Какаянахренразница (ok), 03-Сен-21, 12:07   +2 +/
Слабенькая отмазка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

38. Сообщение от Алексей (??), 03-Сен-21, 14:16   –1 +/
> PAC-файл содержит обычный JavaScript-код

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


Ответить | Правка | Наверх | Cообщить модератору
Ответы: #52

39. Сообщение от Аноньимъ (ok), 03-Сен-21, 15:02   +/
>> Зачем 3 млн юзеров в неделю парсят PAC файлы?
> а кто их спрашивал-то?!

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

40. Сообщение от Аноньимъ (ok), 03-Сен-21, 18:03   –1 +/
>обычная настройка wpad происходит.
>wpad

Сжечь.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #42

41. Сообщение от Аноним (41), 03-Сен-21, 18:21   +/
Нужен meta npm с рейтингом модулей. За уязвимости рейтинг само собой снижать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #43

42. Сообщение от пох. (?), 03-Сен-21, 19:12   +1 +/
Ты тоже разработчик, что-ли? Пойти и прочитать документацию - не?

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #44

43. Сообщение от пох. (?), 03-Сен-21, 19:14   +/
> Нужен meta npm с рейтингом модулей. За уязвимости рейтинг само собой снижать.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

44. Сообщение от Аноньимъ (ok), 03-Сен-21, 19:31   +/
> Код возвращает настройку прокси - отдельно для каждого возможного и невозможного урла,
> потому что, внезапно, они могут отличаться для разных адресов. Расскажи мне,
> как это сделать универсальным образом без скриптов?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

45. Сообщение от Аноним (45), 03-Сен-21, 19:49   +/
кто сказал, что это уязвимость?
Ответить | Правка | Наверх | Cообщить модератору

47. Сообщение от Онаним (?), 03-Сен-21, 23:41   +1 +/
Любителей тянуть в рот всё свеженькое из непонятных источников опять поимели. Впрочем, так им и надо.
Ответить | Правка | Наверх | Cообщить модератору

48. Сообщение от another_one (ok), 04-Сен-21, 09:45   +/
> Я правильно понимаю, что проблему устранили указанием в документации что API теперь предназначено для запуска не заслуживающего доверия кода?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

49. Сообщение от Аноним (49), 04-Сен-21, 18:08   +/
Не в ту сторону воюете
Против библиотек никто не выступал
И есть разница между уникальной уязвимостью одного проекта и массовой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

50. Сообщение от Аноним (49), 04-Сен-21, 18:09   +/
Там было хоть слово против библиотек?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

51. Сообщение от Аноним (49), 04-Сен-21, 18:11   +1 +/
Их сейчас с js на rust переучивают ускоренно, чтоб в ядро коммитили
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

52. Сообщение от Аноним (49), 04-Сен-21, 18:20   +/
Не понял, но осуждаю?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру