PHP 8.3.6 Released with Critical Security Fixes

PHP 8.3.6 Released with Critical Security Fixes

The PHP development team has unveiled PHP 8.3.6 on April 11, 2024, marking it as a crucial security release.

Home / Blog / News / PHP 8.3.6 Released with Critical Security Fixes

PHP (Hypertext Preprocessor)

PHP, which stands for Hypertext Preprocessor, is a widely used server-side scripting language designed for web development. Created by Rasmus Lerdorf in 1994, PHP originally stood for “Personal Home Page,” reflecting its original purpose of managing Lerdorf’s personal website. Over the years, PHP has evolved into a powerful and versatile language capable of handling various tasks, from simple website scripting to complex web applications.

One of PHP’s key strengths is its integration with HTML, allowing developers to embed PHP code directly into HTML pages for dynamic content generation. PHP code is executed on the server, producing HTML output that is then sent to the client’s web browser. This enables the creation of dynamic web pages that can interact with databases, handle form submissions, and perform other server-side tasks.

PHP supports a wide range of databases, including MySQL, PostgreSQL, and SQLite, making it suitable for building database-driven web applications. Additionally, PHP has a vast ecosystem of libraries, frameworks, and tools that streamline development and enhance productivity. Popular PHP frameworks include Laravel, Symfony, and CodeIgniter, which provide robust structures and features for building web applications efficiently.

PHP 8.3.6

The PHP development team has unveiled PHP 8.3.6 on April 11, 2024, marking it as a crucial security release. All users of PHP 8.3 are strongly advised to promptly upgrade to this latest version to ensure the highest level of security for their systems and applications.

You can obtain the source downloads for PHP 8.3.6 from the official PHP website here. Additionally, Windows users can find the necessary source files and binaries on windows.php.net/download/.

This release primarily focuses on resolving security vulnerabilities and enhancing the overall stability of PHP. The detailed list of changes can be found in the ChangeLog.

Core:

  • Fixed issues such as the unnecessary growth of GC buffer, memory corruption in destructors with weak references, and failure in restoring exception handlers.

DOM:

  • Addressed potential memory leaks and added missing ZPP checks.

FPM:

  • Rectified a bug causing the configuration test to run twice in daemonized mode and resolved an incorrect check in fpm_shm_free().

GD:

  • Resolved issues related to feature tests and detection of image formats in the system GD library.

Gettext:

  • Fixed a bug causing sigabrt errors with certain gettext calls.

MySQLnd:

  • Fixed handshake response and corrected charset length checks.

Opcache:

  • Addressed segmentation fault issues and prevented optimization of JITed QM_ASSIGN.

Random:

  • Ensured compatibility with pre-PHP 8.2 versions and proper reset of Global Mt19937.

Session:

  • Resolved segmentation faults and compilation errors.

SPL:

  • Fixed unexpected null pointer errors.

Standard:

  • Addressed issues related to live filesystem modifications by tests, validation of \n in mail() headers, and failures in file_put_contents on Windows.

Security Fixes:

  • Patched critical vulnerabilities including command injection via proc_open(), cookie bypass vulnerabilities, potential ATO risks, and endless loops in mb_encode_mimeheader.

PHP 8.3.6 stands as a testament to the PHP development team’s dedication to ensuring the reliability and security of PHP for its vast community of users. By promptly updating to this latest version, users can fortify their PHP environments against potential security threats and benefit from the various bug fixes and improvements introduced in this release.

FastCGI Process Manager (FPM)

FPM stands for “FastCGI Process Manager.” In the context of PHP, PHP-FPM (PHP FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for websites of any size, especially busy sites.

FastCGI is a protocol for interfacing interactive programs with a web server. PHP-FPM is a process manager to manage FastCGI processes for PHP. It is typically used to handle PHP requests via FastCGI, providing a more efficient way to serve PHP than traditional CGI methods.

PHP-FPM offers several advantages over other PHP handlers like mod_php:

  1. Scalability: PHP-FPM allows you to configure and manage pools of PHP worker processes separately, providing better control over resource allocation and scalability. This is particularly useful for high-traffic websites where the demand for PHP processes may vary.
  2. Performance: By using separate PHP worker processes, PHP-FPM can handle concurrent PHP requests more efficiently, leading to better performance and response times compared to other PHP handlers.
  3. Resource Management: PHP-FPM allows you to fine-tune the resource usage of PHP processes, such as memory limits and process priorities, to optimize server performance and stability.
  4. Isolation: Each PHP-FPM pool runs in its own isolated environment, which improves security and stability by preventing one pool from affecting others in case of issues like memory leaks or crashes.

Overall, PHP-FPM is a powerful tool for managing PHP processes in a FastCGI environment, offering improved scalability, performance, and resource management capabilities compared to traditional PHP handlers. It is widely used in production environments to serve PHP applications efficiently, especially in conjunction with high-traffic websites or web applications.

PHP 8.3 new additions

json_validate()

Before PHP 8.3, confirming the syntactic correctness of a JSON-encoded string necessitated using json_decode() and verifying for errors. With the introduction of the json_validate() function, this procedure is streamlined. It enables the validation of JSON syntax directly, eliminating the requirement to build associative arrays or objects, thus saving memory.

gc_status()

In PHP 8.3, the gc_status() function, which furnishes garbage collector statistics, undergoes enhancement. It now furnishes supplementary details such as the running status, protection status, buffer size, and other relevant information.

get_class() and get_parent_class()

Starting from PHP 8.3, invoking get_class() and get_parent_class() without parameters is marked as deprecated. This adjustment is intended to simplify the usage of these functions and mitigate potential ambiguities stemming from multiple function signatures.

Historical releases that are no longer supported

The PHP development team has provided a comprehensive list of historical releases, encompassing a wide range of versions dating back to 2023. However, it’s essential to note that these older releases are no longer supported. While they serve as valuable archival resources for historical purposes, users should be aware that using unsupported versions could pose security risks and may lack important bug fixes and updates. For optimal performance, it’s strongly recommended to utilize the latest supported version of PHP available. Users can find the most up-to-date release information on the PHP downloads page, ensuring they have access to the latest features, security patches, and improvements.

Here’s the list of PHP versions along with their release dates and a brief description:

  1. PHP 8.1.27
    • Released: 21 Dec 2023
    • Description: PHP 8.1.27 is a minor update with bug fixes and improvements.
  2. PHP 8.3.4
    • Released: 14 Mar 2024
    • Description: PHP 8.3.4 brings enhancements and bug fixes to the 8.3 branch.
  3. PHP 8.2.17
    • Released: 14 Mar 2024
    • Description: PHP 8.2.17 includes fixes and improvements for PHP 8.2 users.
  4. PHP 8.3.3
    • Released: 15 Feb 2024
    • Description: PHP 8.3.3 contains bug fixes and optimizations for the 8.3 series.
  5. PHP 8.2.16
    • Released: 15 Feb 2024
    • Description: PHP 8.2.16 addresses issues and refines features in PHP 8.2.
  6. PHP 8.2.15
    • Released: 18 Jan 2024
    • Description: PHP 8.2.15 delivers bug fixes and improvements for PHP 8.2 users.
  7. PHP 8.3.2
    • Released: 18 Jan 2024
    • Description: PHP 8.3.2 brings fixes and enhancements to the PHP 8.3 series.
  8. PHP 8.2.14
    • Released: 21 Dec 2023
    • Description: PHP 8.2.14 includes bug fixes and improvements for PHP 8.2 users.
  9. PHP 8.3.1
    • Released: 21 Dec 2023
    • Description: PHP 8.3.1 introduces fixes and enhancements to PHP 8.3.
  10. PHP 8.2.13
    • Released: 23 Nov 2023
    • Description: PHP 8.2.13 provides fixes and refinements for PHP 8.2 users.
  11. PHP 8.1.26
    • Released: 23 Nov 2023
    • Description: PHP 8.1.26 brings bug fixes and improvements to PHP 8.1.
  12. PHP 8.3.0
    • Released: 23 Nov 2023
    • Description: PHP 8.3.0 introduces new features and improvements to the PHP 8.3 series.
  13. PHP 8.0.30
    • Released: 03 Aug 2023
    • Description: PHP 8.0.30 delivers bug fixes and enhancements for PHP 8.0 users.
  14. PHP 8.1.25
    • Released: 26 Oct 2023
    • Description: PHP 8.1.25 includes bug fixes and improvements for PHP 8.1 users.
  15. PHP 8.2.12
    • Released: 26 Oct 2023
    • Description: PHP 8.2.12 brings fixes and enhancements to PHP 8.2.
  16. PHP 8.1.24
    • Released: 28 Sep 2023
    • Description: PHP 8.1.24 provides bug fixes and improvements for PHP 8.1 users.
  17. PHP 8.2.11
    • Released: 28 Sep 2023
    • Description: PHP 8.2.11 delivers fixes and refinements for PHP 8.2 users.
  18. PHP 8.1.23
    • Released: 31 Aug 2023
    • Description: PHP 8.1.23 brings bug fixes and improvements to PHP 8.1.
  19. PHP 8.2.10
    • Released: 31 Aug 2023
    • Description: PHP 8.2.10 includes fixes and enhancements for PHP 8.2 users.
  20. PHP 8.1.22
    • Released: 03 Aug 2023
    • Description: PHP 8.1.22 provides bug fixes and improvements for PHP 8.1 users.

Please note that these descriptions are general and may not cover all changes in each release. For detailed information, refer to the official PHP release notes.