9 июня 2026, 09:27
Ruby введёт «период ожидания» перед установкой новых пакетов

Авторы RubyGems заявили, что большинство атак на цепочку поставок используют узкий временной промежуток после взлома учётной записи, чтобы опубликовать вредоносный пакет. По этой причине Bundler 4.0.13 вводит фильтр cooldown для новых пакетов, чтобы ограничить их инсталляции в течение нескольких дней после публикации.
Функция является необязательной и дополняет, а не заменяет существующие средства защиты, такие как обязательная двухфакторная аутентификация и доверенная публикация.
Cooldown считывает временную метку created_at для каждой версии, которую теперь предоставляет индекс v2 на rubygems.org. Релиз, источник которой не раскрывает created_at, в частности, старые серверы гемов, исторические записи до перехода на v2 или частные реестры, всё ещё использующие структура v1, рассматривается как находящаяся за пределами временного окна и остаётся доступной.
Cooldown входит в состав Bundler 4.0.13. Тем, кто использует более раннюю версию, нужно обновить её и зафиксировать в файле блокировки, чтобы всё работало согласованно:
$ gem update --system # or: gem install bundler -v 4.0.13 $ bundle update --bundler=4.0.13
Затем требуется инсталлировать небольшое ограничение по времени для исходного кода в Gemfile. Это правильная настройка для большинства команд: она фиксируется наряду с кодом, поэтому каждый разработчик и запускание CI обеспечивают один и тот же временной интервал без дополнительной настройки.
source "https://rubygems.org", cooldown: 7 gem "rails" gem "puma"
Поскольку Cooldown не установлен по умолчанию, проект без него продолжает разрешать самые новые версии.
Помимо ключевого слова per-source, параметр cooldown применяет одно значение ко всем источникам, в контексте проекта, глобально или через окружение:
$ bundle config set cooldown 7 # stored in .bundle/config for this project $ bundle config set --global cooldown 7 # applies to every project for this user $ BUNDLE_COOLDOWN=7 bundle install # no lockfile yet, e.g. a fresh CI checkout $ BUNDLE_COOLDOWN=7 bundle update # re-resolve when a lockfile already exists
Для одноразового запуска нужно ввести --cooldown для install, update, add или outdated:
$ bundle install --cooldown 7 $ bundle update --cooldown 7 $ bundle add rails --cooldown 7 $ bundle outdated --cooldown 7
Если присутствует более одного из этих параметров, они разрешаются в фиксированном порядке приоритета: флаг командной строки > параметр конфигурации > per-source cooldown: в Gemfile. Флаг --cooldown переопределяет параметр cooldown (настройка пакета или BUNDLE_COOLDOWN), который, в свою очередь, переопределяет cooldown для источника. Значение всегда является неотрицательным целым числом дней; строка, число с плавающей запятой, отрицательное число или массив отклоняются с ошибкой InvalidOption.
Поскольку флаг и настройка применяются единообразно ко всем источникам, ключевое слово per-source используется, когда политика различается в зависимости от реестра, в частности, для охлаждения общедоступных гемов при доверии внутреннему реестру:
source "https://rubygems.org", cooldown: 7 source "https://gems.internal.example.com", cooldown: 0 do gem "internal-tool" end
Команда --cooldown N в командной строке переопределяет все источники для этого запуска, в том числе тот, который освобождён от ограничений.
Передача значения 0 отключает период охлаждения. Это наиболее важно, когда появляется исправление для активно используемой уязвимости нулевого дня или сообщение об уязвимости указывает на необходимость немедленного обновления. В этих случаях значение --cooldown 0 позволяет получить новый выпуск, не снимая политику ограничений для всех остальных:
$ bundle install --cooldown 0 $ BUNDLE_COOLDOWN=0 bundle update rails # ignore any configured cooldown this time
bundle outdated учитывает задержку. Он аннотирует версии, которые новее, но всё ещё находятся в пределах временного окна, указывая количество дней, оставшихся до того, как их можно будет исправить.
$ bundle outdated --cooldown 7 Gem Current Latest Requested Groups aws-partitions 1.1251.0 1.1256.0 (cooldown 3d) = 1.1251.0 default
Реестр равным образом теперь проверяет содержимое гемов во время отправки и проверяет авторизацию на Have I Been Pwned, чтобы скомпрометированные пароли не могли быть использованы повторно. Специальная команда проводит сканирование уязвимостей с помощью ИИ для наиболее важных гемов при поддержке Alpha Omega и Anthropic.
Ранее в GitHub сообщили, что хакеры, взломавшие 3800 внутренних репозиториев платформы, получили доступ к ним через вредоносную версию расширения Nx Console для VS Code. Она была скомпрометирована за неделю до этого в результате атаки на цепочку поставок npm от TanStack.
Между тем исследователи кибербезопасности обнаружили более 30 пакетов npm из пространства имен Red Hat ‘@redhat-cloud-services’, которые были скомпрометированы в результате атаки на цепочку поставок. В ходе неё хакеры распространили свежий вариант вредоносного ПО Shai-Hulud «Miasma», предназначенного для кражи учётных данных.
Читают сейчас

46 минут назад
Вышел Visual Studio Code 1.130: отдельный процедура для ИИ-агентов и упрощённая тест правок
Microsoft выпустила Visual Studio Code 1.130. Основные изменения затронули работу с ИИ-агентами: их сессии постепенно переносят в отдельный процедура, а оболочку просмотра сгенерированных изменений сд

1 час назад
Датамайнеры обнаружили эмулятор Xbox 360, скрытый в контексте обратной совместимости оригинальной Xbox с ПК
Во второй половине июля Microsoft объявила о запуске программы обратной совместимости Xbox Backward Compatibility on PC, которая позволяет запускать игры с оригинальной Xbox на ПК и портативных устрой
1 час назад
OpenAI сделала ChatGPT Health доступным для всех пользователей в США
OpenAI объявила о полном запуске сервиса ChatGPT Health в США. Теперь воспользоваться им могут все авторизованные пользователи старше 18 лет нев зависимости от тарифа — Free, Go, Plus или Pro. Функция

1 час назад
Selectel дарит домены новым клиентам VDS
При аренде VDS в Selectel до 30 сентября 2026 года все новые клиенты могут получить в подарок адрес сайта в зоне .ru или .рф. Подробности под катом. Читать далее

1 час назад
Евросоюз ввёл санкции против банков WB, Ozon, «Яндекса», МТС и десятков других финансовых организаций
Евросоюз согласовал и утвердил 21-й пакет санкций против России, они коснутся сфер финансов, энергетики, торговли и криптовалюты, заявил глава Европейского совета Антониу Кошта. В соответствии с публи