CVE-2018-7584 脆弱性対応 AWS Amazon Linux で PHP を yum update できない
こんにちは。
先日 CVE-2018-7584 で PHP の緊急アップデートが発表されました。
記事執筆時の最新である PHP 7.1.16 にアップデートすることで対応が可能ですが、 AWS 上の Amazon Linux で yum update php
を実施しても 候補がない と言われ少しだけはまったので記事にしました。
候補がない!
発表を受けて、早速アップデートを確認しました。
# yum update php
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main | 2.1 kB 00:00:00
amzn-updates | 2.5 kB 00:00:00
32 packages excluded due to repository priority protections
No packages marked for update
あれ?ない?
ここで思い出しました、PHP 7系は別リポジトリだと。
--enablerepo=remi71-php
が必要じゃないかと気づきます。
# yum update --enablerepo=remi-php71 php
Loaded plugins: priorities, update-motd, upgrade-helper
108 packages excluded due to repository priority protections
No packages marked for update
んんん?まだ無理なのか。
ここで、Amazon Linuxでは最新のPHPが提供されてないんじゃないかと疑います。
# yum list | grep php71 | grep 7.1.16-1
php71-php.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-bcmath.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-cli.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-common.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-dba.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-dbg.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-devel.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-embedded.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-enchant.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-fpm.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-gd.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-gmp.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-imap.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-interbase.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-intl.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-json.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-ldap.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-litespeed.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-mbstring.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-mcrypt.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-mysqlnd.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-oci8.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-odbc.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-opcache.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-pdo.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-pdo-dblib.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-pgsql.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-process.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-pspell.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-recode.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-snmp.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-soap.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-tidy.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-xml.x86_64 7.1.16-1.el6.remi remi-safe
php71-php-xmlrpc.x86_64 7.1.16-1.el6.remi remi-safe
あるじゃないかー、なぜだ・・・。
原因判明!
ここで、該当のサーバーをインストールした時に利用した Ansible のコードを確認します。
すると、
- name: Install php
yum:
name: '{{ php.install_packages }}'
enablerepo: '{{ php.enablerepo }}'
disablerepo: '{{ php.disablerepo }}'
state: installed
enablerepo
はいいとして、 disablerepo
も設定されていることを発見。
php.disablerepo
の設定を確認すると、 disablerepo: 'amzn-main'
となっているではありませんか。
恐らく、このときもはまったんだろうな、と思いながら再度実行してみました。
リトライ!
結果・・・、
# yum update --disablerepo=amzn-main --enablerepo=remi-php71 php
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-updates | 2.5 kB 00:00:00
6 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php.x86_64 0:7.1.16-1.el6.remi will be an update
--> Processing Dependency: php-common(x86-64) = 7.1.16-1.el6.remi for package: php-7.1.16-1.el6.remi.x86_64
--> Processing Dependency: php-cli(x86-64) = 7.1.16-1.el6.remi for package: php-7.1.16-1.el6.remi.x86_64
--> Running transaction check
---> Package php-cli.x86_64 0:7.1.10-1.el6.remi will be updated
--> Processing Dependency: php-cli(x86-64) = 7.1.10-1.el6.remi for package: php-devel-7.1.10-1.el6.remi.x86_64
---> Package php-cli.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-common.x86_64 0:7.1.10-1.el6.remi will be updated
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-xml-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-gd-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-mbstring-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-json-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-process-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-pdo-7.1.10-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 7.1.10-1.el6.remi for package: php-fpm-7.1.10-1.el6.remi.x86_64
---> Package php-common.x86_64 0:7.1.16-1.el6.remi will be an update
--> Running transaction check
---> Package php-devel.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-devel.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-fpm.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-fpm.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-gd.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-gd.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-json.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-json.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-mbstring.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-mbstring.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-pdo.x86_64 0:7.1.10-1.el6.remi will be updated
--> Processing Dependency: php-pdo(x86-64) = 7.1.10-1.el6.remi for package: php-mysqlnd-7.1.10-1.el6.remi.x86_64
---> Package php-pdo.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-process.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-process.x86_64 0:7.1.16-1.el6.remi will be an update
---> Package php-xml.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-xml.x86_64 0:7.1.16-1.el6.remi will be an update
--> Running transaction check
---> Package php-mysqlnd.x86_64 0:7.1.10-1.el6.remi will be updated
---> Package php-mysqlnd.x86_64 0:7.1.16-1.el6.remi will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================================================================
Updating:
php x86_64 7.1.16-1.el6.remi remi-php71 2.8 M
Updating for dependencies:
php-cli x86_64 7.1.16-1.el6.remi remi-php71 4.1 M
php-common x86_64 7.1.16-1.el6.remi remi-php71 1.0 M
php-devel x86_64 7.1.16-1.el6.remi remi-php71 1.3 M
php-fpm x86_64 7.1.16-1.el6.remi remi-php71 1.4 M
php-gd x86_64 7.1.16-1.el6.remi remi-php71 70 k
php-json x86_64 7.1.16-1.el6.remi remi-php71 57 k
php-mbstring x86_64 7.1.16-1.el6.remi remi-php71 980 k
php-mysqlnd x86_64 7.1.16-1.el6.remi remi-php71 206 k
php-pdo x86_64 7.1.16-1.el6.remi remi-php71 109 k
php-process x86_64 7.1.16-1.el6.remi remi-php71 64 k
php-xml x86_64 7.1.16-1.el6.remi remi-php71 177 k
Transaction Summary
================================================================================================================================================================================
Upgrade 1 Package (+11 Dependent packages)
Total download size: 12 M
おー、いけました!
あとがき
この脆弱性は緊急となりますので、アプリケーションに影響がない場合は即時アップデートをおすすめします。
それでは次回の記事でお会いしましょう。