Docker 公式の PHP イメージは修正されていますか?
Docker 公式イメージの PHP は、修正版へ更新する変更が取り込まれています。ただし、ソースの変更が取り込まれたことと、すべてのタグ・CPU アーキテクチャのイメージが公開されたことは別です。本サイトでは、すべてのタグの公開状況までは確認できていません。
使っているタグのイメージに含まれる PHP のバージョンが、次の修正版以降になっているか確認してください。
| 系列 | 最初の修正版 |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 以前 | 新しいリリースなし(7.4・8.0・8.1 は公式ソースパッチあり) |
Docker で PHP のバージョンを確認するには?
Dockerfile や compose ファイルに書かれたイメージのタグで、PHP の系列とバージョンが分かります。latest や 8.3 のような動くタグを使っている場合は、取得した時点の PHP が入っています。イメージの参照とダイジェストを記録しておくと、どの PHP が入っているか後から確認できます。
docker pull すれば直りますか?
直りません。pull は新しいイメージをダウンロードするだけで、動いているコンテナはそのままです。新しいイメージでコンテナを作り直す(docker compose up など)までは、古い PHP のまま動き続けます。
自分でビルドしたイメージの場合は?
修正版の PHP を含むベースイメージを使って、最終的なイメージをビルドし直します。アプリのバージョンを上げても、中の PHP が新しくなるとは限りません。ビルドしたら、イメージの中の PHP のバージョンを確認してください。
更新の手順は?
- 永続データ(ボリューム、データベース)のバックアップを取ります。
- 修正版を含むタグに切り替え、イメージを取得または再ビルドします。
- 普段のデプロイ手順で、古いコンテナを新しいコンテナに置き換えます。
- すべてのレプリカで、新しいコンテナの PHP のバージョンを確認し、PHP バージョンチェッカーで判定します。
アプリのイメージ(Nextcloud など)を使っている場合は?
アプリ提供元のイメージに PHP が同梱されている場合は、提供元が修正版の PHP で作り直したイメージを出すのを待つ必要があります。アプリ提供元の告知を確認してください。自分のサーバー全体の確認は php2shell 対処法、状況の判定は PHP2Shell チェッカーを使ってください。
情報源
このページの主要な事実(修正版、CVE の内容、配布元のパッケージ、公的機関の呼びかけ)は公式の情報源にもとづいています。研究者の報告、報道、コミュニティの投稿はそれぞれ区別して表示しています。
- [security] Update to 8.5.12, 8.4.27, 8.3.36, 8.2.35事業者 Docker Official Images maintainers
- docker compose pull公式 Docker
- docker compose up公式 Docker
- Security advisory: Critical remote code execution vulnerabilities, update now公式 The PHP Group
- php_sapi_name公式 The PHP Group