Multiple Vulnerabilities in PHP Could Allow for Arbitrary Code Execution

MS-ISAC ADVISORY NUMBER:

2019-087

DATE(S) ISSUED:

OVERVIEW:

Multiple vulnerabilities have been discovered in PHP, the most severe of which could allow for arbitrary code execution. PHP is a programming language originally designed for use in web-based applications with HTML content. PHP supports a wide variety of platforms and is used by numerous web-based software applications. Successfully exploiting the most severe of these vulnerabilities could allow for arbitrary code execution in the context of the affected application. Depending on the privileges associated with the application, an attacker could install programs; view, change, or delete data; or create new accounts with full user rights. Failed exploitation could result in a denial-of-service condition.

THREAT INTELLIGENCE:

There are currently no reports of these vulnerabilities being exploited in the wild.

SYSTEMS AFFECTED:

PHP 7.1 versions prior to 7.1.32

PHP 7.2 versions prior to 7.2.22

PHP 7.3 versions prior to 7.3.9

RISK:

Government: Large and medium government entities: HIGH

Small government entities: HIGH Businesses: Large and medium business entities: HIGH

Small business entities: HIGH Home Users: LOW

TECHNICAL SUMMARY:

Multiple vulnerabilities have been discovered in PHP, the most severe of which could allow for arbitrary code execution. Details of these vulnerabilities are as below:

Version 7.3.9

Bug #78363 (Buffer overflow in zendparse)

Bug #78379 (Cast to object confuses GC, causes crash)

Bug #78412 (Generator incorrectly reports non-releasable $this as GC child)

Bug #77946 (Bad cURL resources returned by curl_multi_info_read()

Bug #78333 (Exif crash (bus error)

Bug #77185 (Use-after-free in FPM master event handling)

Bug #78342 (Bus error in configure test for iconv //IGNORE)

Bug #78380 (Oniguruma 6.9.3 fixes CVEs)

Bug #78179 (MariaDB server version incorrectly detected)

Bug #78213 (Empty row pocket)

Bug #77191 (Assertion failure in dce_live_ranges()

Bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream)

Bug #78282 (atime and mtime mismatch)

Bug #78326 (improper memory deallocation on stream_get_contents()

Bug #78346 (strip_tags no longer handling nested php tags)

Version 7.2.22

Bug #78363 (Buffer overflow in zendparse)

Bug #78379 (Cast to object confuses GC, causes crash)

Bug #77946 (Bad cURL resources returned by curl_multi_info_read()

Bug #78333 (Exif crash (bus error)

Bug #78342 (Bus error in configure test for iconv //IGNORE)

Bug #78179 (MariaDB server version incorrectly detected)

Bug #77191 (Assertion failure in dce_live_ranges()

Bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream)

Bug #78282 (atime and mtime mismatch)

Bug #78326 (improper memory deallocation on stream_get_contents()

Version 7.1.32

Bug #75457 (heap use-after-free in pcrelib)

Successfully exploiting the most severe of these vulnerabilities could allow for arbitrary code execution in the context of the affected application. Depending on the privileges associated with the application, an attacker could install programs; view, change, or delete data; or create new accounts with full user rights. Failed exploitation could result in a denial-of-service condition.

RECOMMENDATIONS:

We recommend the following actions be taken:

Upgrade to the latest version of PHP immediately, after appropriate testing.

Verify no unauthorized system modifications have occurred on system before applying patch.

Apply the principle of Least Privilege to all systems and services.

Remind users not to visit websites or follow links provided by unknown or untrusted sources.

REFERENCES: