Image: cdn.sanity.io · rights & removal
Composer 2.11 Adds Dependency Cooldowns
Reporting by Socket Security BlogRead the original at socket.dev
Executive Summary
Facts Only
* Composer 2.11 added dependency cooldowns.
* The feature allows specifying a waiting period in hours, days, or weeks using the config.policy.cooldown setting.
* Cooldowns are disabled by default and apply during composer update and require operations.
* Existing lockfile installations are unaffected by the change.
* The feature supports organization-wide configuration through Private Packagist.
* Release metadata can be derived from a Git commit date or supplied via composer.json, allowing potential backdating of malicious releases.
* Composer 2.11 uses the published-time field from Packagist instead of trusting dates provided by package publishers.
* Cooldowns are not automatically exempt for security fixes; developers can use --no-cooldown for immediate updates or use the ignore setting for permanent exemptions.
* pnpm introduced minimum release ages in September 2025, with a default delay of 24 hours in version 11.
* Yarn has enabled a release-age gate by default.
* Bundler added cooldown support in June.
* Cargo is scheduled to add minimum publish age support in Rust 1.100 on November 12.
Full Take
The introduction of dependency cooldowns marks a significant structural shift in the philosophy of software supply chain management, moving from an assumption of immediate uptake of the latest compatible releases to one that prioritizes temporal scrutiny. The friction introduced by requiring developers to wait for a specified period forces a confrontation between the operational desire for rapid security remediation and the necessary defense against coordinated systemic risk. The resistance noted by maintainers during development regarding workflow disruption suggests a tension between centralized security policies and decentralized development velocity.
The mechanism of addressing manipulated metadata—by shifting trust from publisher-supplied dates to registry timestamps—reveals a critical vulnerability in trusting upstream provenance without layered validation. Composer's decision to opt-in rather than force the feature reflects a pragmatic negotiation: aligning with necessary ecosystem standards while acknowledging operational inertia. The parallel adoption across JavaScript, Ruby, and Rust tooling suggests this is not an isolated implementation but a maturing paradigm where delay is increasingly recognized as a viable security control, moving from an optional feature to emerging standard practice in dependency governance.
This evolution implies a revaluation of 'bleeding edge' in software development; the risk associated with instantaneous adoption, when coupled with known supply chain compromises, outweighs the convenience of immediacy for non-critical updates. The deliberate separation between routine updates and urgent security fixes, supported by explicit bypass mechanisms like --no-cooldown, suggests an attempt to reconcile reactive security demands with proactive dependency hygiene, though the ongoing battle over implementation details highlights the difficulty in achieving universal consensus on risk tolerance across diverse ecosystems.
Bridge Questions: If a package publisher can successfully backdate metadata, what verifiable, immutable ledger system is required to fully establish trust without relying solely on temporal checks? How should organizations calibrate the acceptable trade-off between immediate vulnerability patching and mandated dependency review periods when managing critical infrastructure updates? What are the long-term governance implications for dependency versioning when delays become an enforceable policy rather than a negotiable suggestion?
From the original · Socket Security Blog
Composer 2.11 adds dependency cooldowns, joining package managers that delay new releases to reduce supply chain risks while allowing urgent security updates. - Sarah Gooding Composer 2.11 has introduced dependency cooldowns, giving PHP developers a native way to delay newly published package versions before they become eligible for installation.Read the full story at socket.dev
Sentinel unavailable
The automated check of the source article's wording did not complete, so no result is shown.
This looks only at the wording of the original source article, not at this page's AI-written sections. A small local AI model made this estimate. It has not been checked against known human and machine texts, so treat it as provisional. It cannot show who wrote an article.
