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», предназначенного для кражи учётных данных.
Читают сейчас

7 часов назад
Tesla закрыла инициатива солнечной черепицы Solar Roof
Tesla закрыла продажи Solar Roof — крыши из стеклянной черепицы со встроенными солнечными панелями. С сайта пропали упоминания продукта и анкета для оформления заказа. Инициатива признали экономически

9 часов назад
Разработчик заставил умные весы передавать информация в Home Assistant, минуя облачный сервис производителя
Разработчик Дидак Сабатес (Dídac Sabatés) заставил умные весы Withings Body+ передавать данные напрямую в Home Assistant, минуя серверы производителя. Для этого ему потребовалась плата ESP32 и собстве

10 часов назад
Загадочные сигналы в окрестностях Земли могут быть связаны с тёмной материей
Астрономы фактически уверены в существовании тёмной материи и считают, что на неё приходится около четверти всей энергии Вселенной, однако учёные до сих пор не знают, из чего она состоит. Среди возмож

10 часов назад
Немецкий стартап-компания выполнил начальный успешный запускание ракеты в космос из Европы
5 сентября в 23:12 по мск 28-метровая ракета Spectrum немецкой компании Isar Aerospace стартовала с космодрома Андейя на севере Норвегии и вышла на орбиту. Это начальный случай, когда частная ракета,

11 часов назад
Asahi Linux добавила поддержку компьютеров Apple на M3
Разработчики Asahi Linux официально добавили поддержку компьютеров Apple с процессорами M3, M3 Pro и M3 Max. Устройства на базе чипов M3 Ultra пока не поддерживаются. Читать далее