nvd
Bundler
Уязвимости
5
Эксплуатируемые
0
Критический
0
Высокий
2
Топ продуктов
Топ уязвимостей
CVE-2020-36327Bundler 1.16.0 до 2.2.9 и 2.2.11 до 2.2.16 иногда выбирает источник зависимостей на основе самого высокого номера версии gem, что означает, что может быть выбран мошеннический gem, найденный в общедоступном источнике, даже если предполагаемым выбором был частный gem, который является зависимостью другого частного gem, от которого явно зависит приложение. ПРИМЕЧАНИЕ: неправильно использовать CVE-2021-24105 для каждой проблемы "Dependency Confusion" в каждом продукте.
CVE-2021-43809`Bundler` — это пакет для управления зависимостями приложений в Ruby. В версиях `bundler` до 2.2.33 при работе с ненадежными и, казалось бы, безвредными файлами `Gemfile` не ожидается, что они приведут к выполнению внешнего кода, если только это не указано явно в коде ruby внутри самого файла `Gemfile`. Однако, если `Gemfile` включает записи `gem`, использующие параметр `git` с недопустимыми, но кажущимися безвредными значениями с ведущим тире, это может быть неверно. Для обработки зависимостей, поступающих из репозитория Git, а не из реестра, Bundler использует различные команды, такие как `git clone`. Эти команды создаются с использованием пользовательского ввода (например, URL-адреса репозитория). При создании команд версии Bundler до 2.2.33 правильно избегают уязвимостей внедрения команд, передавая массив аргументов вместо командной строки. Однако существует вероятность того, что пользовательский ввод начинается с тире (`-`) и поэтому рассматривается как необязательный аргумент, а не как позиционный. Это может привести к выполнению кода, поскольку некоторые команды имеют параметры, которые можно использовать для запуска произвольных исполняемых файлов. Поскольку это значение поступает из файла `Gemfile`, оно может содержать любой символ, включая ведущее тире.
Чтобы использовать эту уязвимость, злоумышленник должен создать каталог, содержащий файл `Gemfile`, который объявляет зависимость, расположенную в репозитории Git. Эта зависимость должна иметь URL-адрес Git в форме `-u./payload`. Этот URL-адрес будет использоваться для создания команды клонирования Git, но будет интерпретироваться как аргумент upload-pack. Затем этот каталог необходимо предоставить жертве, которой затем необходимо выполнить команду, которая оценивает Gemfile, например `bundle lock`, внутри.
Эта уязвимость может привести к произвольному выполнению кода, что потенциально может привести к захвату системы. Однако возможность использования очень низкая, поскольку требуется большое взаимодействие с пользователем. Bundler 2.2.33 исправил эту проблему, вставив `--` в качестве аргумента перед любыми позиционными аргументами для тех команд Git, которые были затронуты этой проблемой. Независимо от того, могут пользователи выполнить обновление или нет, им следует просмотреть любые ненадежные файлы `Gemfile` перед выполнением каких-либо команд `bundler`, которые могут их прочитать, поскольку они могут содержать произвольный код ruby.
CVE-2019-3881Bundler до версии 2.1.0 использует предсказуемый путь в /tmp/, созданный с небезопасными разрешениями в качестве места хранения gems, если местоположения в домашнем каталоге пользователя недоступны. Если Bundler используется в сценарии, где у пользователя нет доступного для записи домашнего каталога, злоумышленник может поместить вредоносный код в этот каталог, который будет загружен и выполнен позже.
CVE-2013-0334Bundler версий до 1.7, когда используется несколько строк источника верхнего уровня, позволяет удаленным злоумышленникам устанавливать произвольные gems, создав gem с тем же именем, что и другой gem в другом источнике.
CVE-2016-7954Bundler 1.x может позволить удаленным злоумышленникам внедрять произвольный код Ruby в приложение, используя коллизию имен gem на вторичном источнике. ПРИМЕЧАНИЕ: это может пересекаться с CVE-2013-0334.