Edited at

PHP 7.3.3/7.2.16/7.1.27 Released. This is a security release


PHP 7.3.3/7.2.16/7.1.27

PHP 7 ChangeLog を並べ直してみただけです。Security Releaseとはいうものの、各バグの危険度がまだ評価されていないので待ち

いくつかでました。あ、まだ詳しく追ってないので評価は鵜呑みにしないでください。


せっかちな人のための結論

現時点で明らかになっている脆弱性を見る限り、外部から直接攻撃される可能性が比較的低めです。以下のいずれかを満たす必要があります


  • 外部から提供された画像ファイルをアップロードされ、それをexif処理する可能性がある


    • CMS

    • wiki



  • phpコードをサーバ管理者以外がアップロードされうる


    • 共有レンタルサーバなど




発行されたCVE



  • Core: rename() ということはシチュエーションは非常に限られます。別の脆弱性と併用するか、phpコードの設置者がサーバ管理者と完全同一ではない場合(例えばSaSSや共有レンタルサーバなど)の場合のみ直接脅威であると言えるのではないかと思います。




  • EXIF: wikiやCMSなどで不特定多数の作った画像ファイルを受け取る可能性がある場合に危険度たかし




他に怪しいBug


  • privateになっているので詳細不明。他の修正の差分を取り除いて洗い出すしかないかな?




試した環境

テストコードが提示されている、EXIFに限って調べてみました。

CVE-2019-9638,CVE-2019-9640 のみですが全ての環境で陽性です。CVE-2019-9641 はどうやって未再現できず。もしかして32bit onlyか、64bitでは別のダミーファイルが必要なのかも。


  • php 7.2.14 (selfrpm) on Amazon Linux 2

  • php 5.5.38 on Amazon Linux

  • php 5.6.40 (selfbuild) on CentOS 6.10


Changelog

Module
7.x
Link
Note

Core
3,2
#77589
Core dump using parse_ini_string with numeric sections

Core
3
#77329
Buffer Overflow via overly long Error Messages

Core
3
#77494
Disabling class causes segfault on member access

Core
3
#77498
Custom extension Segmentation fault when declare static property

Core
3
#77530
PHP crashes when parsing (2)::class

Core
3
#77546
iptcembed broken function

Core
3,2,1
#77630
rename() across the device may allow unwanted access during processing

COM
3,2
#77621
Already defined constants are not properly reported

COM
3
#77626
Persistence confusion in php_com_import_typelib()

EXIF
3,2,1
#77509
Uninitialized read in exif_process_IFD_in_TIFF

EXIF
3,2,1
#77540
Invalid Read on exif_process_SOFn

EXIF
3,2,1
#77563
Uninitialized read in exif_process_IFD_in_MAKERNOTE

EXIF
3,2,1
#77659
Uninitialized read in exif_process_IFD_in_MAKERNOTE

Mbstring
3
#77514
mb_ereg_replace() with trailing backslash adds null byte

MySQL
3,2

Disabled LOCAL INFILE by default, can be enabled using php.ini directive
mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE
attribute for pdo_mysql.

OpenSSL
3
#77390
feof might hang on TLS streams in case of fragmented TLS records

PDO_OCI
3,2

Support Oracle Database tracing attributes ACTION, MODULE, CLIENT_INFO,
and CLIENT_IDENTIFIER.

PHAR
3,2,1
#77396
Null Pointer Dereference in phar_create_or_parse_filename

PHAR
3,1
#77586
phar_tar_writeheaders_int() buffer overflow

phpdbg
3
#76596
phpdbg support for display_errors=stderr

SPL
3,2
#51068
DirectoryIterator glob:// don't support current path relative queries

SPL
3,2,1
#77431
openFile() silently truncates after a null byte

Standard
3,2
#77552
Unintialized php_stream_statbuf in stat functions

Standard
3
#77612
setcookie() sets incorrect SameSite header if all of its options filled