要点
- PyPI のパッケージページに、配布ファイルの「出どころ」を示す表示と警告が加わった。
- 「出どころなし」は即危険ではないが、本物かどうかを暗号で確かめられない状態だ。
- 表示は判断の材料であり、安全の保証ではない。ほかの確認と合わせて使う必要がある。
何が起きたか
Python のパッケージ置き場 PyPI は、2026年11月6日付の公式ブログで、プロジェクトページの刷新が完了し公開されたと発表した。7月に予告していた一連の画面変更の完了報告だ。デザインは Kabu Creative が担当し、OpenSSF(オープンソースの安全を進める団体)が資金を出した。
中心は、新しい「Security」タブだ。各リリースの出どころ(provenance)の状態を示す。出どころとは、そのリリースのファイルがどこから来たかの記録である。ソースコードやビルドの仕組み、作成の手順などが含まれる。2024年に導入された attestation(デジタル署名つきの証明)が元になっている。
状態は次の2つだ。
- Full Provenance: リリースの全ファイルに attestation がある。
- No Provenance: どのファイルにもない。古いリリースや、Trusted Publishing(登録した公式の仕組みから安全にアップロードする方法)を使わないプロジェクトでよく見られる。PyPI は、これだけで悪意があるとは言えないとしている。
さらに、気になる変化には警告が出る。PyPI の説明は次のとおりだ。
- Incomplete: 証明のあるファイルとないファイルが混在する。
- Inconsistent: 同じリリースのファイルが、別の作り方や別のリポジトリ由来になっている。
- Change of Provenance: 前の版と違うリポジトリや手順から作られている。移転による正当な変更もあるが、作成手順やアカウントが乗っ取られた兆候の可能性もあると PyPI は書いている。
- Loss of Provenance: 以前は証明つきだったのに、つかなくなった。
これらの警告はページの上部に出る。取り下げ(yanked)のリリース、アーカイブ済みのプロジェクト、プレリリースを示す表示も、同じ場所に並ぶ。プロジェクトやリリースが隔離(quarantine)された場合は、隔離の表示だけが出る。ファイル一覧や履歴の表にも、出どころの状態が載る。公開から14日を過ぎて追加されたファイルには、オレンジの警告印がつく。ただし、これは2026年7月より前のリリースが対象だ。7月からは、14日後の追加自体を PyPI が拒否している。
日本の利用者への影響
PyPI の発表に、日本に関する記述はない。日本での影響は分からない。
今すぐやること
- 新しく使うパッケージは、PyPI のページで Security タブを開き、出どころの状態を見る。
- 警告が出ていたら、リリースノートや課題の記録を読み、理由が説明されているか確かめる。
- No Provenance でも、すぐに避ける必要はない。作者の経歴、公開の頻度、リポジトリの動きなど、ほかの材料を見て判断する。
- 自分でパッケージを公開しているなら、Trusted Publishing と attestation の利用を検討する。PyPI の文書が手順を案内している。
- 社内の導入ルールに、出どころの確認を一項目として加える。
背景
PyPI は、Python の利用の急速な広がりにより、悪意ある者に狙われやすくなったと説明している。こうした場では、サプライチェーン攻撃(部品を通じて使う側を狙う攻撃)が懸念される。たとえば、作者のアカウントや公開の手順が攻撃者に乗っ取られると、改ざんされた版が配られるおそれがある。利用者側は、ファイルが本当に作者の公式の手順で作られたかを見分けにくかった。今回の表示は、その弱みを埋める試みだ。
PyPI は、ユーザー調査を踏まえて設計したと説明している。また、Security タブは、将来の証明の種類や安全に関する通知の置き場になるという。パッケージの安全を確かめる手順を示した文書も拡充された。
技術者向けの詳細
- attestation の種類は2つ。PyPI Publish attestation(Trusted Publisher によるアップロードの証明)と、SLSA Build Provenance(ソースのコミット、ビルド基盤、手順に結びつく証明)。両方がつくこともある。
- 状態はリリース内の各ファイルに attestation があるかで決まる。
- 隔離(quarantine)の表示は、ほかの警告より優先され、唯一のバナーになる。
- メタデータは、役に立つ順に並び、「PyPI data」または「Data verified by PyPI」と区別される。
- 詳細は PyPI の provenance 文書と OpenSSF の Attestations Style Guide を参照。



