Pythonパッケージインデックス(PyPI)は、パスワードリセットを通じてアカウントを乗っ取ることができるドメイン復活攻撃に対する新たな保護策を導入しました。
PyPIはオープンソースのPythonパッケージの公式リポジトリです。ソフトウェア開発者、プロダクトメンテナー、Pythonのライブラリやツール、フレームワークを扱う企業によって利用されています。
PyPIでソフトウェアを公開するプロジェクトのメンテナーのアカウントはメールアドレスに紐付けられています。一部のプロジェクトでは、そのメールアドレスがドメイン名に関連付けられています。
ドメイン名が失効すると、攻撃者がそのドメインを再登録し、メールサーバーを設定してアカウントのパスワードリセットを要求することで、PyPI上のプロジェクトを乗っ取ることが可能になります。
このリスクは、乗っ取られたプロジェクトが人気のPythonパッケージの悪意あるバージョンを配布し、場合によってはpipで自動的にインストールされてしまうというサプライチェーン攻撃につながります。
このような攻撃の顕著な例としては、2022年5月に発生した「ctx」パッケージの侵害があり、脅威アクターがAmazon AWSのキーやアカウント認証情報を狙うコードを追加しました。
この問題に対処するため、PyPIはプラットフォーム上の認証済みメールアドレスのドメインが失効しているか、失効間近であるかをチェックし、それらのアドレスを未認証としてマークするようになりました。
技術的には、PyPIはDomainrのStatus APIを利用してドメインのライフサイクル(アクティブ、猶予期間、償還期間、削除待ち)を判定し、必要に応じてアカウントに対する措置を決定します。

出典:PyPI
メールアドレスがその状態に入ると、パスワードリセットやその他のアカウント復旧操作に使用できなくなり、たとえ攻撃者がドメインを登録しても悪用の機会がなくなります。
新しい対策は実際には4月から開発が始まり、状況を評価するための試験的なスキャンが実施されました。最終的に2025年6月から毎日スキャンが導入され、以降1,800件以上のメールアドレスが新システムで未認証となっています。
この対策は完全ではなく、すべての攻撃シナリオに十分とは言えませんが、失効したドメインの悪用によるPyPIアカウント乗っ取りリスクを大幅に低減します。
PyPIは、アカウントの混乱を避けるためにカスタムドメインでないバックアップ用メールアドレスを追加し、アカウントの乗っ取り対策として二要素認証を有効にすることを推奨しています。