Rh-nodejs14-nodejs
Уязвимости
54
Эксплуатируемые
1
Макс. CVSS
9.8
Макс. EPSS
0.99999
Распределение по критичности
Критический
3
Высокий
32
Средний
17
Низкий
2
Также сопоставлено как (исходные строки): rh-nodejs14-nodejs
Топ уязвимостей
CVE-2021-44906Minimist <=1.2.5 уязвим для загрязнения прототипа через файл index.js, функцию setKey() (строки 69-95).
CVE-2021-3918json-schema уязвим для ненадлежащего контролируемого изменения атрибутов прототипа объекта («Загрязнение прототипа»).
CVE-2021-22930Node.js версий до 16.6.0, 14.17.4 и 12.22.4 уязвим для атаки use after free, когда злоумышленник может воспользоваться повреждением памяти, чтобы изменить поведение процесса.
CVE-2022-4904Обнаружена уязвимость в пакете c-ares. В ares_set_sortlist отсутствуют проверки достоверности входной строки, что допускает переполнение стека произвольной длины. Эта проблема может вызвать отказ в обслуживании или ограниченное воздействие на конфиденциальность и целостность.
CVE-2022-21824Из-за логики форматирования функции "console.table()" было небезопасно разрешать передачу пользовательского ввода в параметр "properties", одновременно передавая простой объект как минимум с одним свойством в качестве первого параметра, которым может быть "__proto__". Загрязнение прототипа имеет очень ограниченный контроль, поскольку позволяет присваивать только пустую строку числовым ключам прототипа объекта. Node.js >= 12.22.9, >= 14.18.3, >= 16.13.2 и >= 17.3.1 используют нулевой прототип для объекта, которому присваиваются эти свойства.
CVE-2021-37712Пакет npm "tar" (он же node-tar) до версий 4.4.18, 5.0.10 и 6.1.9 имеет уязвимость, связанную с произвольным созданием/перезаписью файлов и произвольным выполнением кода. node-tar стремится гарантировать, что ни один файл, местоположение которого будет изменено символической ссылкой, не будет извлечен. Это, в частности, достигается путем обеспечения того, чтобы извлеченные каталоги не были символическими ссылками. Кроме того, чтобы предотвратить ненужные вызовы stat для определения того, является ли данный путь каталогом, пути кэшируются при создании каталогов. Эта логика была недостаточной при извлечении tar-файлов, которые содержали как каталог, так и символическую ссылку с именами, содержащими значения Юникода, которые нормализовались к одному и тому же значению. Кроме того, в системах Windows длинные части пути разрешались бы в те же объекты файловой системы, что и их "короткие пути" 8.3. Таким образом, специально созданный tar-архив мог включать каталог с одной формой пути, за которым следовала символическая ссылка с другой строкой, которая разрешается в тот же объект файловой системы, за которым следует файл, использующий первую форму. Сначала создав каталог, а затем заменив этот каталог символической ссылкой, которая имела другое видимое имя, которое разрешалось в ту же запись в файловой системе, можно было обойти проверки символических ссылок node-tar в каталогах, что, по сути, позволяло ненадежному tar-файлу создавать символическую ссылку в произвольное местоположение и впоследствии извлекать произвольные файлы в это местоположение, тем самым позволяя произвольное создание и перезапись файлов. Эти проблемы были решены в выпусках 4.4.18, 5.0.10 и 6.1.9. Ветвь v3 node-tar устарела и не получила исправлений для этих проблем. Если вы все еще используете выпуск v3, мы рекомендуем вам обновиться до более новой версии node-tar. Если это невозможно, обходной путь доступен в указанном GHSA-qq89-hq3f-393p.
CVE-2021-37701Пакет npm "tar" (он же node-tar) до версий 4.4.16, 5.0.8 и 6.1.7 имеет уязвимость, связанную с произвольным созданием/перезаписью файлов и произвольным выполнением кода. node-tar стремится гарантировать, что ни один файл, местоположение которого будет изменено символической ссылкой, не будет извлечен. Это, в частности, достигается путем обеспечения того, чтобы извлеченные каталоги не были символическими ссылками. Кроме того, чтобы предотвратить ненужные вызовы stat для определения того, является ли данный путь каталогом, пути кэшируются при создании каталогов. Эта логика была недостаточной при извлечении tar-файлов, которые содержали как каталог, так и символическую ссылку с тем же именем, что и каталог, где имена символических ссылок и каталогов в записи архива использовали обратные косые черты в качестве разделителя путей в системах posix. Логика проверки кэша использовала как символы `\`, так и `/` в качестве разделителей путей, однако `\` является допустимым символом имени файла в системах posix. Сначала создав каталог, а затем заменив этот каталог символической ссылкой, можно было обойти проверки символических ссылок node-tar в каталогах, что, по сути, позволяло ненадежному tar-файлу создавать символическую ссылку в произвольное местоположение и впоследствии извлекать произвольные файлы в это местоположение, тем самым позволяя произвольное создание и перезапись файлов. Кроме того, аналогичная путаница могла возникнуть в файловых системах, нечувствительных к регистру. Если tar-архив содержал каталог в `FOO`, за которым следовала символическая ссылка с именем `foo`, то в файловых системах, нечувствительных к регистру, создание символической ссылки удалило бы каталог из файловой системы, но _не_ из внутреннего кэша каталогов, поскольку он не рассматривался бы как попадание в кэш. Последующая запись файла в каталоге `FOO` будет помещена в цель символической ссылки, полагая, что каталог уже был создан. Эти проблемы были решены в выпусках 4.4.16, 5.0.8 и 6.1.7. Ветвь v3 node-tar устарела и не получила исправлений для этих проблем. Если вы все еще используете выпуск v3, мы рекомендуем вам обновиться до более новой версии node-tar. Если это невозможно, обходной путь доступен в указанном GHSA-9r2w-394v-53qc.
CVE-2021-32804Пакет npm "tar" (aka node-tar) до версий 6.1.1, 5.0.6, 4.4.14 и 3.3.2 имеет произвольную уязвимость создания/перезаписи файлов из-за недостаточной очистки абсолютного пути. node-tar стремится предотвратить извлечение абсолютных путей к файлам, преобразуя абсолютные пути в относительные, если флаг `preservePaths` не установлен в `true`. Это достигается путем удаления корня абсолютного пути из любых абсолютных путей к файлам, содержащихся в tar-файле. Например, `/home/user/.bashrc` превратится в `home/user/.bashrc`. Эта логика была недостаточной, когда пути к файлам содержали повторяющиеся корни путей, такие как `////home/user/.bashrc`. `node-tar` удалял бы только один корень пути из таких путей. Если задан абсолютный путь к файлу с повторяющимися корнями путей, результирующий путь (например, `///home/user/.bashrc`) все равно будет разрешаться в абсолютный путь, тем самым позволяя произвольное создание и перезапись файлов. Эта проблема была решена в выпусках 3.2.2, 4.4.14, 5.0.6 и 6.1.1. Пользователи могут обойти эту уязвимость без обновления, создав собственный метод `onentry`, который очищает `entry.path`, или метод `filter`, который удаляет записи с абсолютными путями. См. Справочное руководство GitHub для получения подробной информации. Помните об CVE-2021-32803, который исправляет аналогичную ошибку в более поздних версиях tar.
CVE-2021-32803Пакет npm "tar" (aka node-tar) до версий 6.1.2, 5.0.7, 4.4.15 и 3.2.3 имеет произвольную уязвимость создания/перезаписи файлов из-за недостаточной защиты символических ссылок. `node-tar` стремится гарантировать, что любой файл, местоположение которого будет изменено символической ссылкой, не будет извлечен. Это, в частности, достигается за счет обеспечения того, чтобы извлеченные каталоги не были символическими ссылками. Кроме того, чтобы предотвратить ненужные вызовы `stat` для определения того, является ли данный путь каталогом, пути кэшируются при создании каталогов. Эта логика была недостаточной при извлечении tar-файлов, которые содержали как каталог, так и символическую ссылку с тем же именем, что и каталог. Этот порядок операций приводил к созданию каталога и добавлению в кэш каталогов `node-tar`. Когда каталог присутствует в кэше каталогов, последующие вызовы mkdir для этого каталога пропускаются. Однако именно здесь `node-tar` проверяет наличие символических ссылок. Сначала создав каталог, а затем заменив этот каталог символической ссылкой, можно было обойти проверки символических ссылок `node-tar` в каталогах, что, по сути, позволяло ненадежному tar-файлу создавать символические ссылки в произвольное местоположение и впоследствии извлекать произвольные файлы в это местоположение, тем самым позволяя произвольное создание и перезапись файлов. Эта проблема была решена в выпусках 3.2.3, 4.4.15, 5.0.7 и 6.1.2.
CVE-2020-8265Версии Node.js до 10.23.1, 12.20.1, 14.15.4, 15.5.1 уязвимы для ошибки use-after-free в своей реализации TLS. При записи в сокет с поддержкой TLS node::StreamBase::Write вызывает node::TLSWrap::DoWrite со свежевыделенным объектом WriteWrap в качестве первого аргумента. Если метод DoWrite не возвращает ошибку, этот объект передается обратно вызывающей стороне как часть структуры StreamWriteResult. Это может быть использовано для повреждения памяти, что приведет к отказу в обслуживании или, возможно, к другим эксплойтам.
CVE-2024-27983Злоумышленник может сделать сервер Node.js HTTP/2 полностью недоступным, отправив небольшое количество пакетов HTTP/2 с несколькими фреймами HTTP/2 внутри. Возможно оставить некоторые данные в памяти nghttp2 после сброса, когда заголовки с фреймом HTTP/2 CONTINUATION отправляются на сервер, а затем TCP-соединение резко закрывается клиентом, что вызывает деструктор Http2Session, пока фреймы заголовка все еще обрабатываются (и хранятся в памяти), вызывая гонку.
CVE-2024-22019Уязвимость в HTTP-серверах Node.js позволяет злоумышленнику отправить специально составленный HTTP-запрос с кодировкой chunked, что приводит к истощению ресурсов и отказу в обслуживании (DoS). Сервер считывает неограниченное количество байтов из одного соединения, используя отсутствие ограничений на байты расширения фрагментов. Эта проблема может вызвать истощение CPU и сетевой пропускной способности, обойдя стандартные меры безопасности, такие как таймауты и ограничения на размер тела.
CVE-2023-44487Протокол HTTP/2 допускает отказ в обслуживании (потребление ресурсов сервера), поскольку отмена запроса может быстро сбросить множество потоков, как это было использовано в реальных условиях с августа по октябрь 2023 года.
CVE-2023-32067c-ares — это библиотека асинхронного разрешения. c-ares уязвима к отказу в обслуживании. Если целевой резолвер отправляет запрос, злоумышленник подделывает неправильно сформированный UDP-пакет длиной 0 и возвращает его целевому резолверу. Целевой резолвер ошибочно интерпретирует длину 0 как корректное завершение соединения. Эта проблема была устранена в версии 1.19.1.
CVE-2023-23918Уязвимость повышения привилегий существует в Node.js <19.6.1, <18.14.1, <16.19.1 и <14.21.3, которая позволила обойти экспериментальную функцию разрешений (https://nodejs.org/api/permissions.html) в Node.js и получить доступ к неавторизованным модулям с помощью process.mainModule.require(). Это затрагивает только тех пользователей, которые включили экспериментальную опцию разрешений с помощью --experimental-policy.
CVE-2022-43548В Node.js версий <14.21.1, <16.18.1, <18.12.1, <19.0.1 существует уязвимость внедрения команд ОС из-за недостаточной проверки IsAllowedHost, которую легко обойти, потому что IsIPAddress неправильно проверяет, является ли IP-адрес недействительным, прежде чем отправлять запросы DBS, что позволяет проводить атаки с повторной привязкой. Исправление этой проблемы в https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32212 было неполным, и это новое CVE предназначено для завершения исправления.
CVE-2022-38900decode-uri-component 0.2.0 уязвим для Improper Input Validation, что приводит к DoS.
CVE-2022-3517В пакете minimatch обнаружена уязвимость. Этот недостаток позволяет вызвать отказ в обслуживании регулярным выражением (ReDoS) при вызове функции braceExpand с определенными аргументами, что приводит к отказу в обслуживании.
CVE-2022-32212В версиях Node.js <14.20.0, <16.20.0, <18.5.0 существует уязвимость OS Command Injection из-за недостаточной проверки IsAllowedHost, которую легко обойти, потому что IsIPAddress неправильно проверяет, является ли IP-адрес недействительным, прежде чем делать запросы DBS, что позволяет выполнять атаки повторной привязки.
CVE-2022-25881Это затрагивает версии пакета http-cache-semantics до 4.1.1. Проблема может быть использована через вредоносные заголовки запросов, отправляемые на сервер, когда этот сервер читает политику кэширования из запроса с помощью этой библиотеки.
CVE-2022-24999qs версий до 6.10.3, используемый в Express версий до 4.17.3 и других продуктах, позволяет злоумышленникам вызывать зависание процесса Node для приложения Express, поскольку может быть использован ключ __proto__. Во многих типичных случаях использования Express не прошедший проверку подлинности удаленный злоумышленник может поместить вредоносную нагрузку в строку запроса URL-адреса, используемого для посещения приложения, например a[__proto__]=b&a[__proto__]&a[length]=100000000. Исправление было перенесено в qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3 и 6.2.4 (и, следовательно, Express 4.17.3, в описании выпуска которого указано "deps: qs@6.9.7", не является уязвимым).
CVE-2021-3807Ansi-regex уязвим для неэффективной сложности регулярных выражений.
CVE-2021-35065Пакет glob-parent до версии 6.0.1 для Node.js допускает атаки ReDoS (отказ в обслуживании с использованием регулярных выражений) против регулярного выражения enclosure.
CVE-2021-33502Пакет normalize-url до версии 4.5.1, 5.x до версии 5.3.1 и 6.x до версии 6.0.1 для Node.js имеет проблему ReDoS (отказ в обслуживании из-за регулярного выражения), поскольку он имеет экспоненциальную производительность для data: URL.
CVE-2021-27290ssri 5.2.2-8.0.0, исправленный в 8.0.1, обрабатывает SRIs с использованием регулярного выражения, которое уязвимо к отказу в обслуживании. Вредоносные SRIs могут потребовать чрезвычайно много времени для обработки, что приведет к отказу в обслуживании. Эта проблема затрагивает только потребителей, использующих строгий параметр.