PHPの複数の脆弱性情報(CVE-2019-9020, CVE-2019-9021, CVE-2019-9022, CVE-2019-9023, CVE-2019-9024, CVE-2019-9025)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

02/23/2019にPHPの複数の脆弱性情報(CVE-2019-9020, CVE-2019-9021, CVE-2019-9022, CVE-2019-9023, CVE-2019-9024, CVE-2019-9025)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。



一次情報源

CVE番号影響するバージョンリファレンスPriorityCVSS
CVE-2019-9020 5.6.40より前, 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.1より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77242

MISC:https://bugs.php.net/bug.php?id=77249

9.8 Critical AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2019-9021 5.6.40より前, 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.1より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77247

9.8 Critical AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2019-9022 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.2より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77369

7.5 High AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVE-2019-9023 5.6.40より前, 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.1より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77370

MISC:https://bugs.php.net/bug.php?id=77371

MISC:https://bugs.php.net/bug.php?id=77381

MISC:https://bugs.php.net/bug.php?id=77382

MISC:https://bugs.php.net/bug.php?id=77385

MISC:https://bugs.php.net/bug.php?id=77394

MISC:https://bugs.php.net/bug.php?id=77418

9.8 Critical AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2019-9024 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.2より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77380

7.5 High AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVE-2019-9025 7.3.1より前の7.3.x系

MISC:https://bugs.php.net/bug.php?id=77367

9.8 Critical AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9020
    • ヒープ領域外の読み込み又はread after freeの可能性
    • xmlrpc_decode()関数への不正な入力により、不正なメモリアクセス(ヒープ領域外の読み込み又はread after free)が発生します。これはext/xmlrpc/libxmlrpc/xml_element.c中のxml_elem_parse_bufに関係しています。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9021
    • ヒープベースのバッファー領域外読み込みの可能性
    • PHAR拡張子中のPHAR reading関数により、攻撃者がファイル名をパースすることでアロケートされた/過去に実データがアロケートされたメモリに対してヒープベースの領域外読み込みを発生させることが出来ます。これはext/phar/phar.c中のphar_detect_phar_fname_exに関係しています。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9022
    • 過去にDNSデータがアロケートされたバッファーに対しての読み込みの可能性
    • dns_get_recordがDNSレスポンスを誤ってパースするため、悪意の有るDNSサーバがPHPに対してmemcpyを誤って使わせることが出来、過去にDNSデータがアロケートされたバッファーに対して読み込みの操作を行うことが出来ます。これはDNS_CAA/DNS_ANYクエリのためのext/standard/dns.c中のphp_parserrに影響します。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9023
    • 正規表現関数によるヒープベースバッファー領域外読み込みの可能性
    • 誤ったマルチバイトデータがmbstringの正規表現関数に渡された際に複数のヒープベースバッファー領域外読み込みのインスタンスが発生する可能性が有ります。これらは ext/mbstring/oniguruma/regcomp.c, ext/mbstring/oniguruma/regexec.c, ext/mbstring/oniguruma/regparse.c, ext/mbstring/oniguruma/enc/unicode.c, ext/mbstring/oniguruma/src/utf32_be.cdns_get_recordが誤ったマルチバイトデータを含む正規表現パターンを処理する際に発生します。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9024
    • アロケートされたメモリ領域外の読み込みの可能性
    • xmlrpc_decode()が悪意の有るXMLRPCサーバを許可することにより、PHPにext/xmlrpc/libxmlrpc/base64.c中のbase64_decode_xmlrpcでアロケートされたメモリ領域外の読み込みを引き起こします。
  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9025
    • データに割り当てられた過去のバッファの読み込み/書き込みの可能性
    • ext/mbstring/php_mbregex.cでmb_split()関数の引数として無効なマルチバイト文字列を与えた際に、PHPはmemcpy()を負の引数で実行し、データに割り当てられた過去のバッファを読み書きする可能性があります。

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください


対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteKatello、Spacewalk等を使うと管理が便利でしょう。


セキュリティ系連載案内


セミナー情報1

2019/03/07 16:00-18:00に「導入事例とともに見るクラウドセキュリティに必要な3つのポイント」が開催されます。

このセミナーでは2018年のクラウドセキュリティインシデントを振り返り、サイオスが行っている対策をご紹介させていただきます。

https://sios.connpass.com/event/120667/がプログラム内容と申し込みの詳細になります。奮ってご参加下さい。


タイトルとURLをコピーしました