GitHub and PyPI Add New Controls to Reduce Package Supply Chain Risk

GitHub and the Python Package Index (PyPI) are introducing measures designed to limit two software supply chain risks: the rapid distribution of malicious new releases and the later modification of ve...

GitHub and the Python Package Index (PyPI) are introducing measures designed to limit two software supply chain risks: the rapid distribution of malicious new releases and the later modification of versions that have remained stable for months or years.

GitHub’s change adds a default three-day delay to Dependabot pull requests for routine dependency upgrades. Dependabot will wait at least 72 hours after a new release becomes available before proposing the update, giving maintainers, security researchers and automated scanning systems more time to identify suspicious code or have a compromised package removed.

The cooldown applies to non-security version updates. Organizations can adjust the behavior through the dependabot.yml configuration file, while security-related updates are not subject to the same default delay. GitHub said the three-day period is intended to balance exposure to newly published malicious packages against the need to keep dependencies reasonably current.

PyPI limits changes to older releases

PyPI is pursuing a different safeguard by restricting uploads of new files to releases that are more than 14 days old. The policy is intended to prevent attackers who obtain a project’s publishing credentials or compromise its release workflow from adding a malicious wheel or other artifact to an established version.

The restriction is expected to take effect after the Upload 2.0 API and staged preview mechanisms are standardized through PEP 694. PyPI said the impact should be limited because relatively few projects continue adding platform-specific files to older releases. In an analysis of the 15,000 most-downloaded packages, only 56 had published a Python 3.14-compatible wheel more than two weeks after the relevant release was initially available.

Beyond protecting users, PyPI said the rule should simplify incident response. If an older release can no longer receive new files, investigators can more readily distinguish legitimate artifacts from files added during a compromise.

Together, the policies address different points in the dependency lifecycle: GitHub slows the initial adoption of untrusted releases, while PyPI reduces the opportunity to alter releases that users already regard as dependable. Neither control eliminates supply chain attacks, but both add time and visibility for detecting malicious changes before they spread widely.