パッケージマネージャーは冷静になる必要がある
主要なパッケージマネージャーが依存関係クールダウン機能を相次いで実装し、サプライチェーン攻撃への防御策として、更新パッケージのインストールを一定期間遅延させる実践が広くサポートされるようになった。
キーポイント
サプライチェーン攻撃への対応策としての依存関係クールダウン
LiteLLMのサプライチェーン攻撃をきっかけに、更新された依存関係を数日間待ってからインストールする「依存関係クールダウン」の実践が再評価されている。
主要パッケージマネージャーでの広範なサポート
pnpm、Yarn、Bun、Deno、uv、pip、npmなど主要なパッケージマネージャーのほとんどが2025年9月から2026年2月にかけて依存関係クールダウン機能を実装した。
実装方法の多様性と設定の柔軟性
各ツールはminimumReleaseAge、npmMinimalAgeGate、--minimum-dependency-age、--exclude-newer、--uploaded-prior-to、min-release-ageなど様々な設定名で機能を提供し、信頼済みパッケージの除外機能も備えている。
pipの制限と回避策
pip 26.0は絶対日時のみをサポートする制限があるが、Seth Larsonがcronを使用した相対期間サポートの回避策を提案している。
影響分析・編集コメントを表示
影響分析
この記事は、ソフトウェア開発のセキュリティプラクティスにおける重要な転換点を示している。依存関係クールダウン機能の広範な採用は、サプライチェーン攻撃に対する業界全体の対応が成熟段階に入ったことを意味し、開発者に実用的な防御手段を提供することで、オープンソースエコシステム全体のレジリエンス向上に貢献する。
編集コメント
セキュリティ意識の高まりがツールの進化を加速させる好例。開発者コミュニティ全体が共通の課題に対して協調的に対応している点が印象的で、今後のセキュリティ標準の形成に影響を与える可能性が高い。
今日の LiteLLM サプライチェーン攻撃 をきっかけに、依存関係の冷却期間 という考えを再考しました。これは、更新された依存パッケージが実際に公開されてから数日経過し、コミュニティが何らかの方法で乗っ取られていないかを確認する機会を与えるまで、インストールを行わないという実践です。
この最近の Andrew Nesbitt による記事(3月4日付)は、さまざまなパッケージングツールにおける依存関係冷却メカニズムの現状をレビューしています。驚くほど広くサポートされています!主要なパッケージングツールの間で活発な動きがあり、その中には以下が含まれます:
- pnpm 10.16(2025年9月)— minimumReleaseAge および信頼できるパッケージ用の minimumReleaseAgeExclude
- Yarn 4.10.0(2025年9月)— npmMinimalAgeGate(分単位)および除外用 npmPreapprovedPackages
- Bun 1.3(2025年10月)— bunfig.toml を介した minimumReleaseAge
- Deno 2.6(2025年12月)— deno update および deno outdated 用の --minimum-dependency-age
- uv 0.9.17(2025年12月)— 既存の --exclude-newer に相対期間サポートを追加し、パッケージごとのオーバーライドを exclude-newer-package で実現
- pip 26.0(2026年1月)— --uploaded-prior-to(絶対時刻のみ;相対期間サポートは要望中)
- npm 11.10.0(2026年2月)— min-release-age
pip は現在、相対日付ではなく絶対日付のみをサポートしていますが、Seth Larson は、cron を使用して pip.conf 設定ファイル内の絶対日付を定期的に更新するワークアラウンドを提供しています。
Tags: javascript, packaging, pip, pypi, python, security, npm, deno, supply-chain, uv
原文を表示
Package Managers Need to Cool Down
Today's LiteLLM supply chain attack inspired me to revisit the idea of dependency cooldowns, the practice of only installing updated dependencies once they've been out in the wild for a few days to give the community a chance to spot if they've been subverted in some way.
This recent piece (March 4th) piece by Andrew Nesbitt reviews the current state of dependency cooldown mechanisms across different packaging tools. It's surprisingly well supported! There's been a flurry of activity across major packaging tools, including:
- pnpm 10.16 (September 2025) — minimumReleaseAge with minimumReleaseAgeExclude for trusted packages
- Yarn 4.10.0 (September 2025) — npmMinimalAgeGate (in minutes) with npmPreapprovedPackages for exemptions
- Bun 1.3 (October 2025) — minimumReleaseAge via bunfig.toml
- Deno 2.6 (December 2025) — --minimum-dependency-age for deno update and deno outdated
- uv 0.9.17 (December 2025) — added relative duration support to existing --exclude-newer, plus per-package overrides via exclude-newer-package
- pip 26.0 (January 2026) — --uploaded-prior-to (absolute timestamps only; relative duration support requested)
- npm 11.10.0 (February 2026) — min-release-age
pip currently only supports absolute rather than relative dates but Seth Larson has a workaround for that using a scheduled cron to update the absolute date in the pip.conf config file.
Tags: javascript, packaging, pip, pypi, python, security, npm, deno, supply-chain, uv
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み