概要
Packistryは、PHPパッケージの配布を目的としたセルフホスト型のComposerリポジトリです。この度、Packistryの特定のバージョンにおいて、期限切れのアクセストークンが依然として有効と判断され、リポジトリへのアクセスを許可してしまう脆弱性(CVE-2026-27968)が報告されました。
この問題は、RepositoryAwareController::authorize()関数がトークンの存在と権限は確認するものの、その有効期限を適切にチェックしていなかったことに起因します。
影響範囲
- Packistry バージョン 0.13.0 未満のすべてのバージョン
想定される影響
本脆弱性が悪用された場合、攻撃者は期限切れのデプロイトークンを所持しているだけで、Packistryリポジトリの各種エンドポイント(例:ComposerメタデータAPI、パッケージダウンロードAPIなど)にアクセスできる可能性があります。
これにより、本来アクセスが許可されるべきではないユーザーが、機密性の高いパッケージ情報や、場合によってはパッケージ自体にアクセスしてしまうリスクが考えられます。
攻撃成立条件・悪用状況
攻撃成立条件
- 攻撃者が、対象のPackistryインスタンスで過去に発行され、現在は期限切れとなっているデプロイトークンを保持していること。
- Packistryがバージョン0.13.0未満であること。
悪用状況
現時点では、本脆弱性の具体的な悪用事例は報告されていません。
推奨対策(優先度付き)
今すぐできる対策
- Packistryのアップデート:
本脆弱性はPackistryバージョン 0.13.0 で修正されています。速やかにPackistryを最新バージョン(0.13.0以降)にアップデートすることを強く推奨します。
中長期的な対策
- アクセストークンのライフサイクル管理の徹底:
デプロイトークンを含むすべてのアクセストークンについて、発行、利用、失効、削除といったライフサイクルを適切に管理し、不要になったトークンは速やかに削除する運用を徹底してください。
- アクセスログの監視:
Packistryへのアクセスログを定期的に監視し、不審なアクセスがないか確認してください。
一時的な緩和策
本脆弱性に対する一時的な緩和策は、現時点では報告されていません。根本的な解決には、Packistryのアップデートが必須となります。
確認方法
ご自身のPackistry環境が本脆弱性の影響を受けるかどうかは、現在利用しているPackistryのバージョンを確認することで判断できます。バージョンが0.13.0未満である場合は、影響を受ける可能性があります。