[AWS] 脆弱性対応でPHP7.1.31のアップデートでエラーになった

こんにちは。

JPCERTから提供されている WEEKLY REPORT 2019-08-07PHP7の脆弱性が報告 されていたので早速対応を実施したのですが、Amazon Linux1 の環境でエラーとなりました。

解決の流れをメモを兼ねて記事にします。

JPCERTの通知内容は以下のとおりです。

 JPCERT-WR-2019-3001
                                                                   JPCERT/CC
                                                                  2019-08-07

            <<< JPCERT/CC WEEKLY REPORT 2019-08-07 >>>

——————————————————————————————————————
■07/28(日)~08/03(土) のセキュリティ関連情報
——————————————————————————————————————
※省略
            <<< JPCERT/CC WEEKLY REPORT 2019-08-07 >>>
【3】PHP にバッファオーバーフローの脆弱性
    情報源
      The PHP Group
      PHP 7.3.8 Release Announcement
      https://www.php.net/archive/2019.php#2019-08-01-1
      The PHP Group
      PHP 7.2.21 Released
      https://www.php.net/archive/2019.php#2019-08-01-2
      The PHP Group
      PHP 7.1.31 Released
      https://www.php.net/archive/2019.php#2019-08-01-3
    概要
      PHP には、バッファオーバーフローの脆弱性があります。結果として、遠隔の
      第三者が、サービス運用妨害 (DoS) 攻撃を行ったり、任意のコードを実行し
      たりする可能性があります。
      対象となるバージョンは次のとおりです。
      - PHP 7.3.8 より前のバージョン
      - PHP 7.2.21 より前のバージョン
      - PHP 7.1.31 より前のバージョン
      この問題は、PHP を開発者や配布元が提供する修正済みのバージョンに更新す
      ることで解決します。詳細は、開発者や配布元が提供する情報を参照してくだ
      さい。
    関連文書 (英語)
      The PHP Group
      PHP 7 ChangeLog Version 7.3.8
      https://www.php.net/ChangeLog-7.php#7.3.8
      The PHP Group
      PHP 7 ChangeLog Version 7.2.21
      https://www.php.net/ChangeLog-7.php#7.2.21
      The PHP Group
      PHP 7 ChangeLog Version 7.1.31
      https://www.php.net/ChangeLog-7.php#7.1.31
※省略

AWS環境

# uname -a
Linux hostname 4.9.58-18.51.amzn1.x86_64 #1 SMP Tue Oct 24 22:44:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

解決までの流れ

過去の記事を参考に、PHPをアップデートしたのですが、依存関係でエラーになってしまいました。 CVE-2018-7584 脆弱性対応 AWS Amazon Linux で PHP を yum update できない

アップデートコマンドを実行すると、

sudo yum -y --disablerepo=amzn-main --enablerepo=remi,epel,remi-php71 update php

以下の依存エラーになりました。

--> Finished Dependency Resolution
Error: Package: libxml2-devel-2.9.1-6.3.52.amzn1.x86_64 (amzn-updates)
           Requires: xz-devel
Error: Package: php-devel-7.1.31-1.el6.remi.x86_64 (remi-php71)
           Requires: libedit-devel(x86-64)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

amzn-updates アップデートのエラーが出ているので amzn-updatesも除外 して再確認します。

sudo yum -y --disablerepo=amzn-main,amzn-updates --enablerepo=remi,epel,remi-php71 update php

以下のようになりました。

--> Finished Dependency Resolution
Error: Package: php-devel-7.1.31-1.el6.remi.x86_64 (remi-php71)
           Requires: libxml2-devel(x86-64)
Error: Package: php-devel-7.1.31-1.el6.remi.x86_64 (remi-php71)
           Requires: libedit-devel(x86-64)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

依存関係(Requires) エラーで、 libxml2-develとlibedit-develが不足している ことが分かります。

確認すると、以下のようにインストールされていません。

# rpm -qa | grep libxml2-devel
# rpm -qa | grep libedit-devel

以下のコマンドで不足しているパッケージをインストールします。

yum -y install libxml2-devel libedit-devel

この状態で再度アップデートすることで成功しました。

sudo yum -y --disablerepo=amzn-main --enablerepo=remi,epel,remi-php71 update php

早めにアップデートするようにしましょう。 それでは次回の記事でお会いしましょう。

norikazum