こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
02/23/2019にPHPの複数の脆弱性情報(CVE-2019-9020, CVE-2019-9021, CVE-2019-9022, CVE-2019-9023, CVE-2019-9024, CVE-2019-9025)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
[関連リンク(最新5件)]
PHPの脆弱性情報(Low: CVE-2018-19935)
PHPの脆弱性情報(Important: CVE-2018-19518)
一次情報源
CVE番号 | 影響するバージョン | リファレンス | Priority | CVSS |
---|---|---|---|---|
CVE-2019-9020 | 5.6.40より前, 7.1.26より前の7.1.x系, 7.2.14より前の7.2.x系, 7.3.1より前の7.3.x系 | 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系 | 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系 | 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 | 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系 | 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系 | 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()を負の引数で実行し、データに割り当てられた過去のバッファを読み書きする可能性があります。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
https://security-tracker.debian.org/tracker/CVE-2019-9020
https://security-tracker.debian.org/tracker/CVE-2019-9021
https://security-tracker.debian.org/tracker/CVE-2019-9022
https://security-tracker.debian.org/tracker/CVE-2019-9023
- Red Hat Enterprise Linux/CentOS
https://access.redhat.com/security/cve/CVE-2019-9020
https://access.redhat.com/security/cve/CVE-2019-9021
https://access.redhat.com/security/cve/CVE-2019-9022
https://access.redhat.com/security/cve/CVE-2019-9023
- Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9020.html
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9021.html
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9022.html
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9023.html
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9024.html
https://people.canonical.com/~ubuntu-security/cve/2019/CVE-2019-9025.html
- SUSE/openSUSE
https://www.suse.com/security/cve/CVE-2019-9020.html
https://www.suse.com/security/cve/CVE-2019-9021.html
https://www.suse.com/security/cve/CVE-2019-9022.html
https://www.suse.com/security/cve/CVE-2019-9023.html
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。
[参考]
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9020
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9021
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9022
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9023
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9024
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9025
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。
セミナー情報1
2019/03/07 16:00-18:00に「導入事例とともに見るクラウドセキュリティに必要な3つのポイント」が開催されます。
このセミナーでは2018年のクラウドセキュリティインシデントを振り返り、サイオスが行っている対策をご紹介させていただきます。
https://sios.connpass.com/event/120667/がプログラム内容と申し込みの詳細になります。奮ってご参加下さい。