サイオスセキュリティブログの記事によりますと、2018年9月18日にPHPの脆弱性情報(CVE-2018-17082)が公開されたとのことです。脆弱性の内容については以下の引用の通りです。
XSSの脆弱性
5.6.37以前/7.0.31以前/7.1.21以前/7.2.9以前のバージョンのPHPには、sapi/apache2handler/sapi_apache2.cファイル中のphp_handler()関数で bucket brigade をうまく処理していなかったため、”Transfer-Encoding: chunked”リクエストを通じたXSSの脆弱性が存在します。
また今回の脆弱性情報については、redhatの記事も参考になります。
PHP7.xセキュリティアップデートの方法
さて肝心なのはセキュリティアップデートの方法です。以下の文章でその方法をまとめました。なおアップデート前のOS・ミドルウェア・主なアプリケーションの環境は以下の通りです。使用しているサーバーは「さくらのVPS」です。
CentOS Linux release 7.5.1804 (Core) Apache/2.4.6 (CentOS) PHP7.0.24 mysql Ver 14.14 Distrib 5.6.36, for Linux (x86_64) using EditLine wrapper
yumを最新にする
# yum update
CentOS7の中でパッケージングされているソフトウェア全体を最新のものにします。
remi-enterprise.repoの取得
# rpm –import http://rpms.famillecollet.com/RPM-GPG-KEY-remi # cd /etc/yum.repos.d # wget http://rpms.famillecollet.com/remi-enterprise.repo
remiの基本パッケージに含まれていない、remi-enterprise.repoを新しく取得します。すでにremiレポジトリを取得している場合は1番目と2番目のコマンドは不要です。なお冒頭の画像は画像はwgetコマンドを使って、remi-enterprise.repoを取得したときのyum.repos.dディレクトリの内容一覧です。
remiレポジトリのアップデート
yum --enablerepo=remi update
yumコマンドを実行してremiレポジトリを最新のものにします。この時点でremiレポジトリにはセキュリティアップデートされたバージョンのPHP7.xが含まれています(2018年9月21日現在)。
PHP7.xの再インストール
# yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-gd php-mysqlnd # php -v PHP 7.0.32 (cli)
最後にyumコマンドを使って最新のremiレポジトリからPHP7.xをインストールします。上記はPHP7.0を使っている場合のコマンドです。また拡張モジュールについては、自分が使っている既存の機能を引き継いでいます。
PHPの設定ファイルについて
# vi /etc/php.ini
なおPHPの設定ファイル(php.ini)を確認すると、最初にインストールした直後に設定した内容がそのまま引き継がれていました。セキュリティアップデートによって、php.iniを再設定する必要はないと考えられます。
PHPのセキュリティアップデートとWordPress
ちなみに今回のセキュリティアップデートは、当ブログを動かしている「さくらのVPS」で行なっています。またWordPressのバージョンは4.9.8です。今のところ(2018年9月21日現在)、記事や画像を投稿するなどの基本的な機能については、従来どおりの動作ができています。
2018年9月25日(火)追記
日記書いた。PHPの脆弱性 CVE-2018-17082 について、mod_cacheとの組み合わせで攻撃経路を見つけました / “PHPの脆弱性 CVE-2018-17082 によるキャッシュ汚染についての注意喚起 | 徳丸浩…” https://t.co/yIOnmR3gSU
— 徳丸 浩 (@ockeghem) September 24, 2018
2018年9月25日付で「徳丸浩の日記」のブログにおいて、PHPの脆弱性 CVE-2018-17082 によるキャッシュ汚染についての注意喚起という記事が公開されました。CVE-2018-17082によるキャッシュ汚染の内容について詳しく解説されています。セキュリティ関係者の方は、ぜひ一読しましょう。