The OpenNET Project / Index page

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

Новые выпуски Node.js 13.8, 12.15 и 10.19 с устранением уязвимостей

06.02.2020 10:30

Разработчики серверной JavaScript-платформы Node.js опубликовали корректирующие выпуски 13.8.0, 12.15.0 и 10.19.0, в которых устранены три уязвимости:

  • CVE-2019-15606 - некорректная обработка необязательных символов пробела (OWS), идущих после значения в HTTP-заголовке;
  • CVE-2019-15605 - возможность проведения атаки HRS (HTTP Request Smuggling, позволяет вклиниваться в содержимое других запросов, обрабатываемых в том же потоке между фронтэндом и бэкендом) через передачу специально оформленного HTTP-заголовка Transfer-Encoding;
  • CVE-2019-15604 - инициируемый удалённо крах TLS-сервера через передачу некорректной строки в сертификате.

Кроме того, в новых выпусках проведена работа по повышению защищённости парсера HTTP и более строгому разбору элементов HTTP-запросов. Изменение может привести к проблемам с совместимостью с реализациями HTTP, нарушающими требования спецификаций. Для отключения жёсткого режима проверки предусмотрена настройка insecureHTTPParser и опция командной строки "--insecure-http-parser".

  1. Главная ссылка к новости (https://nodejs.org/en/blog/rel...)
  2. OpenNews: Выпуск серверной JavaScript-платформы Node.js 13.0
  3. OpenNews: В различных реализациях протокола HTTP/2 выявлено 8 DoS-уязвимостей
  4. OpenNews: В зависимостях к npm-пакету с установщиком PureScript выявлены вредоносные изменения
  5. OpenNews: Уязвимость в Node.js, которая может привести к отказу в обслуживании
  6. OpenNews: Атака на системы фронтэнд-бэкенд, позволяющая вклиниться в сторонние запросы
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52319-node.js
Ключевые слова: node.js
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (31) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:32, 06/02/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +10 +/
     

     ....ответы скрыты (3)

  • 1.3, Аноним (3), 11:06, 06/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > TLS-сервера

    А что, нода ещё и сама себе https? Я как-то привык считать, что такое ПО живёт за nginx/haproxy/varnish/whateverelse.

     
     
  • 2.4, нах. (?), 11:18, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А что, нода ещё и сама себе https?

    внезапно!

    > Я как-то привык считать, что такое ПО живёт за nginx/haproxy/varnish/whateverelse.

    а они к нему обращаются исключительно через /dev/astral ?
    Малыш, ты уже почти взрослый, и тебе пора знать правду - Дед Морозом был наш сосед, сантехник дядя Вася. Поэтому не пришел в этот новый год он не потому, что не было зимы, а потому что помер от цирроза еще в апреле.

    P.S. хуже что она же сама себе еще и веб-клиент. С совершеннейшим п-цом - начиная от прибитых гвоздем внутри и не позволяющих никак себя пооверрайдить единственно-верных CA (можно только полностью отключить вообще проверку валидности, разумеется, если код позволяет это делать), и заканчивая тем что 302 - это "фатальная ашибка".

     
     
  • 3.6, Антон (??), 11:22, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в чем проблема использовать из ноды более удобный веб-клиент? Если дефолтный не катит.
     
     
  • 4.18, НяшМяш (ok), 12:31, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Можно использовать любой веб-клиент. Однако они обычно писаны непонятно кем, самые популярные из них практически не поддерживаются и они наследуют проблемы собственно базового клиента из пакета ноды. Уже упоминали, что тот же 302 клиент по-умолчанию не держит - нужно писать самому обвязку. Потом внезапно оказывается, что и gzip-deflate нужно самому руками распаковывать. Потом оказывается, что для поддержки http2 тебе нужно использовать другой модуль - и сразу возникает проблема согласования, когда ты не знаешь какой протокол поддерживает хост. Опускаешься на уровень ниже, в сокеты, где вручную хукаешься на ивенты согласования, проверяешь версию протокола и передаешь сокет нужному модулю.

    В итоге ты пишешь километры кода, который в 90% случаев работает на магии, плюёшь на всё и используешь какой-нибудь node-libcurl, который прекрасно хендлит все эти проблемы, а на стороне JSa тебе прилетает готовенький ответ. Если интересно, можно почитать обсуждение https://github.com/nodejs/node/issues/19393

     
     
  • 5.19, нах. (?), 12:34, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > магии, плюёшь на всё и используешь какой-нибудь node-libcurl, который прекрасно хендлит
    > все эти проблемы, а на стороне JSa тебе прилетает готовенький ответ.

    фак... а что, так было можно?!


     
     
  • 6.23, НяшМяш (ok), 13:08, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > фак... а что, так было можно?!

    Конечно, вот либа если что https://www.npmjs.com/package/node-libcurl Я собственно на неё переключился, когда в проекте появилось требование поддерживать FTP )

     
     
  • 7.26, нах. (?), 13:38, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> фак... а что, так было можно?!
    > Конечно, вот либа если что https://www.npmjs.com/package/node-libcurl Я собственно на
    > неё переключился, когда в проекте появилось требование поддерживать FTP )

    блин, теперь бы донести эту новость до "разработчиков" на nodejs :-( [бегло глянув примеры - мде, тут копипастой не отделаться, тут надо здоровенные куски кода переделывать]

    Я-то наивно думал, что они этой хренью пользуются с горя, потому что curl им недоступен, а он, оказывается, в одном клике лежал.

     
     
  • 8.30, НяшМяш (ok), 15:14, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну если программисты заранее не подумали написать обёртку над внешней библиотеко... текст свёрнут, показать
     
  • 5.35, Анон Анонов (?), 00:23, 07/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Типичный комментатор опеннета. Вместо того, чтобы читать документацию и искать нормальные модули, он готов только изливать желчь на js.

    > Однако они обычно писаны непонятно кем

    Если вы не знаете популярных разработчиков на nodejs это ваши проблемы. Много разработчиков curl вы знаете?

    > самые популярные из них практически не поддерживаются

    Не поддерживается только 'request' из популярных. А остальные - got, node-fetch, axios и т.д. вполне поддерживаюся, умеют обрабатывать и компрессию, и перенаправление. Если вам нужны формы, или вебсокеты, то это всё легко подключается отдельными модулями. Используете только то, что вам нужно и никакой магии.

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

     
     
  • 6.36, НяшМяш (ok), 01:57, 07/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Типичное анонимовский триггер на ключевые слова в посте без осмысления самого по... большой текст свёрнут, показать
     
     
  • 7.37, Анон Анонов (?), 03:32, 07/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Я вот пришёл из нативного мира

    Теперь всё понятно. Вы прост не привыкли к модульной системе. Можно написать библиотеку, которая будет из коробки поддерживать вообще все сетевые запросы. Вот только зачем? Вот вам надо, а другой сотне разработчиков не надо. Но при этом либа всё равно будет тянуть 90% ненужного им кода. Философия ноды как раз в модульности, вы по кирпичикам собираете то, что именно вам нужно.

    > не только я один вижу проблему в NodeJS по части клиентских запросов

    В issue по ссылке есть другая ссылка на документ, в котором чётко описаны проблемы потенциальной реализации fetch. В любом случае всегда можно взять любую другую реализацию.

    > Вот я хочу HTTP/2 из коробки - где оно

    Для http2 в ядре ноды есть модуль. Берите и используйте. Тем более стабилизировали уже давненько.

    > Популярные - это те, которые пишут вещи типа left-pad?

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

    > непонятно от кого в мегабайты весом и они даже защищают такое положение вещей

    js реализации традиционно достаточно много весят, от этого никуда не деться. И писать огромные библиотеки-комбайны, которые делают всё, это тоже плохой подход. Есть ряд сильных разработчиков ноды, которые пишут неплохие модули, например, Синре Сорхус, tj головачук, Маттео Коллина и т.д.

    --

    Если вы не умеете на ноде прогать, зачем истерить тут в комментах, что в ноде всё плохо? Судя по описанной вами задаче вам реально проще тот же курл подключить, если вам нужно кучу протоколов поддерживать.

     
     
  • 8.38, нах. (?), 11:29, 07/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    затем чтобы не зависеть от миллиона вложенных зависимостей, где-нибудь на стотыс... текст свёрнут, показать
     
  • 3.7, Аноним (7), 11:40, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можно, для работы за корп прокси, но не все сторонние библиотеки это поддерживают
     
  • 3.10, Аноним (10), 11:50, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну как это нельзя?

    На конкретный запрос есть опция ca, глобально есть переменная среды NODE_EXTRA_CA_CERTS

     
     
  • 4.12, нах. (?), 11:58, 06/02/2020 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 3.33, Аноним (3), 21:02, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а они к нему обращаются исключительно через /dev/astral

    Есть несколько вариантов для обмена данными между фронтендом и бэкендом, шифрование трафика между ними - это нонсенс.

     
  • 3.34, сам (?), 22:59, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > С совершеннейшим п-цом - начиная от прибитых гвоздем внутри и не позволяющих никак себя
    > пооверрайдить единственно-верных CA (можно только полностью отключить вообще проверку
    > валидности, разумеется, если код позволяет это делать)

    Странно. И как же в моём проекте до этого откровения без особых проблем корректно валидировались и, собственно, продолжают валидироваться сертификаты от внутреннего CA...

     
  • 2.5, Антон (??), 11:21, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    живет.
    А так ssl в ноде юзаем ток в дев моде. Чтобы у себя не лепить прокси лишние.
     
     
  • 3.13, нах. (?), 12:00, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > А так ssl в ноде юзаем ток в дев моде. Чтобы у

    а когда таки надо проверить валидность сертификата?
    Забиваете хрен?

     
     
  • 4.28, Аноним (28), 14:26, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В деве не нужно проверять сертификат или ты думаешь парень за соседним столом внедрил свой серт и слушает дев трафик?))))

    Да даже если он так делает значит так надо может он кул кацкер. На проде там все закрыто совсем не нодой.

     
     
  • 5.39, нах. (?), 11:30, 07/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а, блин, не так понял - то есть дальше тестовых схем у вас это чудо и не смотрит.

    > На проде там все закрыто совсем не нодой.

    и тут мы узнаем, что она не умеет http redirect...

     

  • 1.8, псевдонимус (?), 11:41, 06/02/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
     
     
     
     
     
    Часть нити удалена модератором

  • 6.24, нах. (?), 13:16, 06/02/2020 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.25, псевдонимус (?), 13:24, 06/02/2020 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

     ....ответы скрыты (2)

  • 1.27, Аноним (28), 14:21, 06/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Теперь электрон станет работать быстрее?
     
     
  • 2.29, псевдонимус (?), 14:28, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Теперь электрон станет работать быстрее?

    Станет. На серверах груснокомпаний. На локальных компвх станет тормозить ещё больше, в этом- то и причина впопулярности.

     
  • 2.32, анонище (?), 18:36, 06/02/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Теперь электрон станет работать быстрее?

    Нет, сынок, теперь оперативки надо докупить и проц новый.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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