1. TOPTOP
  2. Webサービス
  3. PHP

CVE-2018-17082 PHPの脆弱性にともなうPHP7.xのセキュリティーアップデートの方法

|

cve-2018-17082_php_security_update_2

サイオスセキュリティブログの記事(新しいタブで開く)によりますと、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日(火)追記

2018年9月25日付で「徳丸浩の日記」のブログにおいて、PHPの脆弱性 CVE-2018-17082 によるキャッシュ汚染についての注意喚起という記事が公開されました。CVE-2018-17082によるキャッシュ汚染の内容について詳しく解説されています。セキュリティ関係者の方は、ぜひ一読しましょう。