<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Igor</title>
    <description>The latest articles on DEV Community by Igor (@colaweb).</description>
    <link>https://dev.to/colaweb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4215235%2F7ef627b1-1690-4741-b135-742fd251d469.png</url>
      <title>DEV Community: Igor</title>
      <link>https://dev.to/colaweb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/colaweb"/>
    <language>en</language>
    <item>
      <title>PHP2Shell on Ubuntu: How to Verify and Install the PHP Security Patch</title>
      <dc:creator>Igor</dc:creator>
      <pubDate>Thu, 29 Oct 2026 12:44:30 +0000</pubDate>
      <link>https://dev.to/colaweb/php2shell-on-ubuntu-how-to-verify-and-install-the-php-security-patch-1i59</link>
      <guid>https://dev.to/colaweb/php2shell-on-ubuntu-how-to-verify-and-install-the-php-security-patch-1i59</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3m6pk398o11kg4ogfdq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3m6pk398o11kg4ogfdq.png" alt="PHP security advisory from October 21, 2026" width="800" height="952"&gt;&lt;/a&gt;&lt;br&gt;
On October 21, 2026, the PHP security team released emergency fixes for two critical vulnerabilities that could allow &lt;strong&gt;unauthenticated remote code execution (RCE)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The issues, commonly discussed as &lt;strong&gt;PHP2Shell&lt;/strong&gt;, are tracked as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2026-109618&lt;/strong&gt; — Remote code execution through out-of-memory corruption.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2026-109619&lt;/strong&gt; — Remote code execution through stale internal request state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run PHP on an Ubuntu VPS, updating is important. But there's a detail that can easily cause confusion: &lt;strong&gt;an Ubuntu server can have the security fixes installed while &lt;code&gt;php -v&lt;/code&gt; still reports an older upstream version.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, Ubuntu 24.04 can report PHP 8.3.6 even after installing the relevant security patches.&lt;/p&gt;

&lt;p&gt;Here's how to check the actual package revision, identify which PHP runtime serves your website, apply the update, and verify the result.&lt;/p&gt;

&lt;p&gt;This guide uses Ubuntu 24.04 LTS with PHP 8.3-FPM as its main example.&lt;/p&gt;
&lt;h2&gt;
  
  
  What exactly is PHP2Shell?
&lt;/h2&gt;

&lt;p&gt;These vulnerabilities affect the PHP interpreter itself, not just applications built with PHP.&lt;/p&gt;
&lt;h3&gt;
  
  
  CVE-2026-109618: Out-of-memory corruption
&lt;/h3&gt;

&lt;p&gt;PHP can encounter memory allocation failures while handling HTTP requests.&lt;/p&gt;

&lt;p&gt;In affected versions, an out-of-memory condition can interrupt internal request initialization. During cleanup, PHP may subsequently treat partially initialized data as valid.&lt;/p&gt;

&lt;p&gt;Under exploitable conditions, this can lead to memory corruption and remote code execution.&lt;/p&gt;
&lt;h3&gt;
  
  
  CVE-2026-109619: Stale global state
&lt;/h3&gt;

&lt;p&gt;PHP workers can process multiple requests during their lifetime.&lt;/p&gt;

&lt;p&gt;This issue involves internal request-owned state remaining accessible after its underlying memory has been freed.&lt;/p&gt;

&lt;p&gt;A later request handled by the same worker may access stale state before normal initialization resets it.&lt;/p&gt;

&lt;p&gt;That creates another potential remote code execution path.&lt;/p&gt;
&lt;h3&gt;
  
  
  Which environments are affected?
&lt;/h3&gt;

&lt;p&gt;The &lt;a href="https://www.php.net/archive/2026.php#2026-10-21-5" rel="noopener noreferrer"&gt;official PHP security advisory&lt;/a&gt; identifies web-facing PHP installations, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PHP-FPM with Nginx&lt;/li&gt;
&lt;li&gt;Apache with mod_php&lt;/li&gt;
&lt;li&gt;PHP-CGI&lt;/li&gt;
&lt;li&gt;FrankenPHP&lt;/li&gt;
&lt;li&gt;LiteSpeed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The PHP team considers Apache with mod_php particularly high risk because a demonstrated attack can be triggered before application code executes.&lt;/p&gt;

&lt;p&gt;Updating WordPress, Laravel, Drupal, or another PHP application does not fix these vulnerabilities in the underlying interpreter.&lt;/p&gt;
&lt;h2&gt;
  
  
  Which PHP versions contain the fixes?
&lt;/h2&gt;

&lt;p&gt;On October 21, PHP published the following upstream security releases:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;PHP branch&lt;/th&gt;
&lt;th&gt;First fixed upstream version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PHP 8.5&lt;/td&gt;
&lt;td&gt;8.5.12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PHP 8.4&lt;/td&gt;
&lt;td&gt;8.4.27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PHP 8.3&lt;/td&gt;
&lt;td&gt;8.3.36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PHP 8.2&lt;/td&gt;
&lt;td&gt;8.2.35&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;PHP 8.1 and older releases no longer receive regular upstream security updates, although some Linux distributions and long-term-support vendors maintain patched packages.&lt;/p&gt;

&lt;p&gt;Here's the catch for Ubuntu administrators: &lt;strong&gt;upstream PHP version numbers and Ubuntu package revisions are not the same thing.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Ubuntu 24.04 may still show PHP 8.3.6
&lt;/h2&gt;

&lt;p&gt;Canonical frequently backports security fixes into distribution packages instead of replacing the entire PHP version with the latest upstream release.&lt;/p&gt;

&lt;p&gt;For Ubuntu 24.04 LTS, the first fixed PHP 8.3 package revision is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8.3.6-0ubuntu0.24.04.13
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice that the upstream part remains &lt;code&gt;8.3.6&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you only run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you might still see PHP 8.3.6 and conclude that your server is vulnerable.&lt;/p&gt;

&lt;p&gt;That conclusion may be incorrect.&lt;/p&gt;

&lt;p&gt;Canonical confirms the following fixed package revisions in &lt;a href="https://ubuntu.com/security/notices/USN-8948-1" rel="noopener noreferrer"&gt;Ubuntu Security Notice USN-8948-1&lt;/a&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Ubuntu release&lt;/th&gt;
&lt;th&gt;PHP branch&lt;/th&gt;
&lt;th&gt;First fixed package revision&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;22.04 LTS&lt;/td&gt;
&lt;td&gt;8.1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8.1.2-1ubuntu2.28&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24.04 LTS&lt;/td&gt;
&lt;td&gt;8.3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8.3.6-0ubuntu0.24.04.13&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26.04 LTS&lt;/td&gt;
&lt;td&gt;8.5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8.5.4-0ubuntu1.5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;26.10&lt;/td&gt;
&lt;td&gt;8.5&lt;/td&gt;
&lt;td&gt;&lt;code&gt;8.5.9-0ubuntu2.1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These versions apply to the corresponding official Ubuntu packages.&lt;/p&gt;

&lt;p&gt;If PHP was installed from a third-party PPA, a hosting control panel, or a custom source build, check that vendor's security advisory instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Identify the Ubuntu release
&lt;/h2&gt;

&lt;p&gt;Connect to your server through SSH.&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/os-release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for the &lt;code&gt;VERSION_ID&lt;/code&gt; value.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VERSION_ID="24.04"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells you which Ubuntu security notice and package revisions apply to your system.&lt;/p&gt;

&lt;p&gt;Now check the default PHP interpreter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keep in mind that this checks the command-line PHP binary, which may differ from the PHP installation serving your website.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Identify the web-facing PHP runtime
&lt;/h2&gt;

&lt;p&gt;A server can have several PHP versions installed simultaneously.&lt;/p&gt;

&lt;p&gt;List installed PHP packages with their complete revisions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dpkg-query &lt;span class="nt"&gt;-W&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'${binary:Package} ${Version}\n'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s1"&gt;'php8.*'&lt;/span&gt; &lt;span class="s1"&gt;'libapache2-mod-php*'&lt;/span&gt; 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check the installed PHP-FPM services:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl list-unit-files &lt;span class="s1"&gt;'php*-fpm.service'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your website uses Nginx, inspect the configured FastCGI targets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nginx &lt;span class="nt"&gt;-T&lt;/span&gt; 2&amp;gt;/dev/null | &lt;span class="nb"&gt;grep &lt;/span&gt;fastcgi_pass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This helps identify the PHP-FPM socket or upstream handling requests.&lt;/p&gt;

&lt;p&gt;For Apache installations, inspect the loaded PHP-related modules:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl &lt;span class="nt"&gt;-M&lt;/span&gt; 2&amp;gt;/dev/null | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s1"&gt;'php|proxy_fcgi'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only run the web-server checks that apply to your environment.&lt;/p&gt;

&lt;p&gt;For Ubuntu 24.04 with PHP 8.3-FPM, examine the package information:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt-cache policy php8.3-fpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important fields are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Installed:&lt;/strong&gt; the package currently installed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Candidate:&lt;/strong&gt; the package available for installation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version table:&lt;/strong&gt; where those packages come from.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't classify a server as patched solely because a newer package is available. Confirm the version that is actually installed and running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Install the Ubuntu security update
&lt;/h2&gt;

&lt;p&gt;Before changing production packages, ensure that your application files, databases, and configuration are backed up.&lt;/p&gt;

&lt;p&gt;For an installation using official Ubuntu repositories, refresh package indexes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Review available updates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt list &lt;span class="nt"&gt;--upgradable&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During an appropriate maintenance window, apply the updates:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt upgrade
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read the proposed changes before confirming.&lt;/p&gt;

&lt;p&gt;For packages maintained by Ubuntu, Canonical states that a standard system update generally installs the necessary corrections.&lt;/p&gt;

&lt;p&gt;If your server uses third-party PHP packages, check their maintainer's instructions instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify the installed PHP package revision
&lt;/h3&gt;

&lt;p&gt;On Ubuntu 24.04:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dpkg-query &lt;span class="nt"&gt;-W&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'${Package} ${Version}\n'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  php8.3-fpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Compare the resulting revision with the version in USN-8948-1.&lt;/p&gt;

&lt;p&gt;For example, an official Ubuntu package at revision:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8.3.6-0ubuntu0.24.04.13
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;contains the October 21 fixes.&lt;/p&gt;

&lt;p&gt;A later package revision from the same maintained Ubuntu repository should also be checked against Canonical's advisories.&lt;/p&gt;

&lt;p&gt;Remember: the package name and revision are only part of the answer. You also need to establish which PHP runtime is handling HTTP requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Restart PHP-FPM or Apache
&lt;/h2&gt;

&lt;p&gt;Updated PHP packages must be loaded into the processes serving requests.&lt;/p&gt;

&lt;p&gt;For PHP 8.3-FPM, start by checking its configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;php-fpm8.3 &lt;span class="nt"&gt;-t&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the configuration is valid, restart the service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart php8.3-fpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check its status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl status php8.3-fpm &lt;span class="nt"&gt;--no-pager&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the restart fails, inspect recent logs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;journalctl &lt;span class="nt"&gt;-u&lt;/span&gt; php8.3-fpm &lt;span class="nt"&gt;-n&lt;/span&gt; 30 &lt;span class="nt"&gt;--no-pager&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Apache with mod_php, validate its configuration and restart Apache instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apachectl configtest
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart apache2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Avoid restarting unrelated services on a production system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check that the application is responding
&lt;/h3&gt;

&lt;p&gt;You can perform a basic HTTPS check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsS&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  https://example.com/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;example.com&lt;/code&gt; with your application domain.&lt;/p&gt;

&lt;p&gt;A successful response confirms basic availability. It does &lt;strong&gt;not&lt;/strong&gt; prove that the PHP vulnerabilities have been fixed.&lt;/p&gt;

&lt;p&gt;That requires checking the installed vendor-fixed package and the runtime serving your application.&lt;/p&gt;

&lt;h2&gt;
  
  
  An additional PHP advisory from October 23
&lt;/h2&gt;

&lt;p&gt;Two days after the PHP2Shell security release, the PHP team published an &lt;a href="https://www.php.net/archive/2026.php#2026-10-23-1" rel="noopener noreferrer"&gt;informational advisory about session upload progress&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It concerns a separate potential remote code execution scenario associated with &lt;strong&gt;CVE-2026-115560&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The issue requires an unusual combination of application behavior:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;session.serialize_handler&lt;/code&gt; is configured as &lt;code&gt;php_binary&lt;/code&gt; or &lt;code&gt;php_serialize&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Application code changes the handler to &lt;code&gt;php&lt;/code&gt; using &lt;code&gt;ini_set()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The application calls &lt;code&gt;session_start()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Session upload progress is enabled.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Applications that never change the serialization handler at runtime are not exposed through this specific scenario.&lt;/p&gt;

&lt;p&gt;As of October 29, PHP recommends temporarily setting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="py"&gt;session.upload_progress.enabled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Ubuntu 24.04 with PHP 8.3-FPM, the main configuration file is typically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/etc/php/8.3/fpm/php.ini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit the configuration if the recommendation is appropriate for your application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sudoedit /etc/php/8.3/fpm/php.ini
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After making the change, check for conflicting PHP-FPM pool or server configuration overrides.&lt;/p&gt;

&lt;p&gt;Then validate and restart PHP-FPM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;php-fpm8.3 &lt;span class="nt"&gt;-t&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;systemctl restart php8.3-fpm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The setting must be applied before request parsing. Don't rely on changing it through application-level &lt;code&gt;ini_set()&lt;/code&gt; or &lt;code&gt;.user.ini&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Disabling session upload progress may affect applications that depend on this feature, so assess its impact before changing production settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This measure does not replace the PHP2Shell security updates.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The PHP team has also published other temporary mitigations for specific attack paths. Those measures reduce exposure but do not provide complete protection. Installing the security fixes remains the recommended solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if PHP runs inside Docker?
&lt;/h2&gt;

&lt;p&gt;If you deploy PHP applications in containers, updating Ubuntu on the host does not automatically update PHP inside those containers.&lt;/p&gt;

&lt;p&gt;First list running containers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Identify the container serving your application.&lt;/p&gt;

&lt;p&gt;Then check the installed PHP interpreter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;exec &lt;/span&gt;CONTAINER_NAME php &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;CONTAINER_NAME&lt;/code&gt; with the actual container name.&lt;/p&gt;

&lt;p&gt;For Docker Compose deployments:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inspect the PHP image and check whether its upstream maintainer has released a patched version.&lt;/p&gt;

&lt;p&gt;Depending on your deployment, you may need to pull an updated image or rebuild a custom image using a patched base.&lt;/p&gt;

&lt;p&gt;For services that use published images, a typical deployment sequence is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose pull
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For custom-built images, rebuilding and redeploying may also be required.&lt;/p&gt;

&lt;p&gt;After deployment, verify the PHP installation inside the replacement container.&lt;/p&gt;

&lt;p&gt;The same rule applies here: a PHP version banner alone might not reveal whether a distribution-based image contains backported security fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  When rebuilding on a new VPS makes sense
&lt;/h2&gt;

&lt;p&gt;For a supported Ubuntu system, applying the available security updates is usually the most practical option.&lt;/p&gt;

&lt;p&gt;However, moving to a fresh server may be worth considering when the existing environment is no longer maintainable.&lt;/p&gt;

&lt;p&gt;Examples include an unsupported operating system, an abandoned PHP repository, incompatible legacy dependencies, or a server whose integrity can no longer be trusted.&lt;/p&gt;

&lt;p&gt;If you need a new environment, &lt;a href="https://www.cherryservers.com/?affiliate=889HYC31" rel="noopener noreferrer"&gt;Cherry Servers&lt;/a&gt; offers virtual servers with Ubuntu installation options, including Ubuntu 24.04 LTS.&lt;/p&gt;

&lt;p&gt;A migration should begin with a clean, updated operating system, followed by a maintained PHP runtime and properly configured web server.&lt;/p&gt;

&lt;p&gt;Before switching production traffic, restore the application from verified backups and test its functionality.&lt;/p&gt;

&lt;p&gt;Rebuilding does not automatically resolve PHP security issues. New servers require regular patching, access controls, monitoring, and maintenance just like existing ones.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Affiliate disclosure: The Cherry Servers link above is an affiliate link. I may earn a commission if you purchase through it, at no additional cost to you.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to confirm that PHP2Shell has been patched
&lt;/h2&gt;

&lt;p&gt;A reliable verification should answer four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Which PHP runtime serves incoming requests?&lt;/strong&gt; The CLI interpreter may not be the same one your website uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where did the PHP package come from?&lt;/strong&gt; Official Ubuntu repositories and third-party sources can use different security patch schedules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Does the installed package contain the vendor's fix?&lt;/strong&gt; Compare its complete package revision with the corresponding security advisory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Are the patched workers running?&lt;/strong&gt; Restart or replace the affected processes, then verify application availability.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If these checks are complete, you have a stronger basis for assessing remediation than simply reading the output of &lt;code&gt;php -v&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For Ubuntu 24.04, the key detail is that a properly updated PHP 8.3.6 distribution package can contain the October 21 security fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The package revision matters more than the upstream version banner.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.php.net/archive/2026.php#2026-10-21-5" rel="noopener noreferrer"&gt;PHP Security Advisory — October 21, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ubuntu.com/security/notices/USN-8948-1" rel="noopener noreferrer"&gt;Ubuntu Security Notice USN-8948-1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.php.net/archive/2026.php#2026-10-23-1" rel="noopener noreferrer"&gt;PHP Session Upload Progress Advisory — October 23, 2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cherryservers.com/knowledge/docs/compute/virtual-servers" rel="noopener noreferrer"&gt;Cherry Servers Virtual Server Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>php</category>
      <category>devops</category>
      <category>security</category>
      <category>ubuntu</category>
    </item>
  </channel>
</rss>
