HN 日本語サマリー

← 一覧へ戻る
プログラミング

PyPI Blog: リリースは14日以降、新しいファイルのアップロードを拒否

PyPI Blog: Releases now reject new files after 14 days (blog.pypi.org)

75 pointsby miketheman45 コメント

要約

Python Package Index (PyPI) は、リリースから14日以上経過したリリースへの新しいファイルのアップロードを拒否するようになりました。これは、公開トークンやワークフローが侵害された場合に、古い安定リリースが改ざんされるのを防ぐためのセキュリティ対策です。この変更は、LiteLLMとTelnyxの最近の侵害を受けて議論が再開され、PyCon US 2026での合意を経て実施されました。今後は、新しいPythonバージョンのサポートのために新しいリリースを作成することが推奨されます。

全文翻訳

リリースは14日以降、新しいファイルのアップロードを拒否します Python Package Index (PyPI) は、リリースから14日以上経過したリリースへの新しいファイルのアップロードを拒否するようになりました。この制限は、公開トークンやワークフローが侵害された場合に、古い、長期間安定していたリリースが改ざんされるのを防ぐために導入されました。我々の知る限り、これまでに悪用された例はありませんが、攻撃者がそれが可能であることに気づいていなかったという技術的な理由以外には、特に理由はありません。ユーザーはまだこの動作に依存すべきではありません。なぜなら、「新しいファイルを受け付けなくなったリリース」の定義されたセマンティクスや、リリースの状態を確認できるAPIはまだ利用できないからです。代わりに、これらのセマンティクスは「Upload 2.0 API」と「Staged Previews」がPEP 694によって標準化された後に定義される予定です。 この動作に関する議論は、2024年1月にPEP 740 (Digital Attestations) の中で始まりました。人気のあるパッケージであるLiteLLMとTelnyxが侵害された後の2026年3月に、議論が再開されました。これらのパッケージは、Trivy GitHub Actionの使用における「可変参照」が原因で侵害されました。当初、この議論は、一部のプロジェクトが既に公開されているリリースに新しいPythonバージョンをサポートするためにこの動作に依存していたため、停滞していました。 既存のワークフローへのこの変更がどれほど破壊的であるかを定量化するために、PyPIデータベースが、古いリリースに新しいファイルを公開したプロジェクト(リリースからの経過日数でバケット化)についてクエリされました。次に、上位15,000パッケージについて特にcp314ホイールがクエリされ、15,000パッケージ中わずか56プロジェクトが、リリースから14日以上経過した後に3.14互換のホイールを公開していたことが明らかになりました。このトピックは、PyPI Safety & Security EngineerであるMike FiedlerによってPyCon US 2026のPackaging Summitで取り上げられました。議論の概略的な合意は、サミット参加者が新しいPythonバージョンをサポートするために「ユーザーに次のバージョンに更新することを要求する」ことは許容できると考えていたということでした。データと合意を得て、Sethは古いリリースへの新しいファイルの拒否に関するパッチを進め、2026年7月8日にマージされました。 この変更はPythonユーザーを保護し、PyPI管理者に関連するプロジェクト侵害の「クリーンアップ」作業の量を減らします。この制限はまた、侵害がリリースを「侵害された」と「侵害されていない」という不確定で混乱した状態にしないことを意味します。そこでは、ファイルのサブセットのみが悪意のあるソフトウェアで汚染される可能性があります。Upload 2.0 APIが「オープン」ではなく「クローズド」なリリースに対するセマンティクスを提供する将来に、ご期待ください。Python Software FoundationでのSeth LarsonとMike Fiedlerの活動はAlpha-Omegaによって支援されています。