PyPI、14 日以上前のリリースへの新規アップロードを拒否
PyPI は、公開トークンやワークフローが侵害された場合に長期安定版への悪意あるファイル追加を防ぐため、14 日以上経過したリリースへの新規ファイルアップロードを拒否するセキュリティ強化措置を導入しました。
キーポイント
新セキュリティ制限の導入
PyPI は、リリースから 14 日を経過したパッケージに対して、新しいファイル(アーティファクト)のアップロードを自動的に拒否するルールを実装しました。
サプライチェーン攻撃への対策
この制限は、プロジェクトの公開トークンや CI/CD ワークフローが侵害された際に、長期間安定しているリリースが「汚染(ポイズニング)」されるリスクを軽減するために設けられました。
攻撃者の動向と技術的根拠
現時点ではこの脆弱性が悪用された事例はありませんが、これは攻撃者がその可能性に気づいていなかったためであり、技術的な阻止措置として機能します。
重要な引用
The Python Package Index (PyPI) now rejects new files being uploaded to releases that are older than 14 days.
This restriction was put in place to prevent old and long-stable releases from being poisoned in case publishing tokens or workflows of PyPI projects were compromised.
影響分析・編集コメントを表示
影響分析
この変更は、Python エコシステムにおけるソフトウェアサプライチェーンセキュリティの基盤を強化する画期的な措置です。攻撃者が侵害されたトークンを使って過去の安定版にマルウェアを埋め込むという典型的な攻撃シナリオに対する防御壁となり、開発者やエンドユーザーの信頼性を高めます。ただし、長期間メンテナンスが必要なパッケージの緊急修正プロセスには、新しいワークフローの適応が求められる可能性があります。
編集コメント
この変更は、昨今のソフトウェアサプライチェーン攻撃の増加に対応する、極めてタイムリーかつ重要なセキュリティ強化策です。開発者は、パッケージ管理の運用フローにおいて、この 14 日の制限を新たな基準として認識し、緊急時の対応プロセスを見直す必要があります。
Python パッケージインデックス(PyPI)は、リリースから 14 日以上経過したバージョンに対して新しいファイルのアップロードを拒否するようになりました。この制限は、PyPI プロジェクトのパブリッシングトークンやワークフローが侵害された際に、古く安定していたリリースが悪意あるコードで汚染されるのを防ぐために導入されました。
現時点では、この仕組みが実際に悪用された事例はありません。ただし、技術的な理由というよりは、攻撃者が「そのようなことが可能だ」という事実をまだ知らなかっただけです。
— セス・ラーソン(Seth Larson)、PyPI ブログ
原文を表示
The Python Package Index (PyPI) now rejects new files being uploaded to releases that are older than 14 days. This restriction was put in place to prevent old and long-stable releases from being poisoned in case publishing tokens or workflows of PyPI projects were compromised. As far as we are aware this has not yet been abused, but there is no technical reason beyond that attackers weren't aware it was possible.
— Seth Larson, PyPI blog
Tags: packaging, python, supply-chain, pypi, seth-michael-larson
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み