<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><id>https://catalinwaack.com/en/blog</id><title>Catalin Waack</title><subtitle>News and analysis about software, AI and running digital products by Catalin Waack.</subtitle><link href="https://catalinwaack.com/en/blog"/><link href="https://catalinwaack.com/rss/en/atom.xml" rel="self" type="application/atom+xml"/><updated>2026-10-21T17:04:12Z</updated><author><name>Catalin Waack</name><uri>https://catalinwaack.com/</uri></author>
<entry><id>https://catalinwaack.com/en/blog/php2shell-php-security-update</id><title>PHP2Shell: What PHP website owners should do now</title><link href="https://catalinwaack.com/en/blog/php2shell-php-security-update"/><published>2026-10-21T17:04:12Z</published><updated>2026-10-21T17:04:12Z</updated><summary>PHP2Shell explained for WordPress, Laravel and Symfony operators: the 9.2 severity score, patched versions, reverse shells, spam, botnets and practical next steps.</summary><content type="html">&lt;p class=&quot;lead&quot;&gt;The PHP team has released security updates for two critical vulnerabilities that can let attackers run their own instructions on affected web servers without signing in. WordPress sites, Laravel and Symfony applications, and PHP-based shops all need their underlying PHP installation checked. An up-to-date application does not prove that the server runtime has been patched.&lt;/p&gt;
&lt;p&gt;The flaws, &lt;strong&gt;CVE-2026-109618&lt;/strong&gt; and &lt;strong&gt;CVE-2026-109619&lt;/strong&gt;, are discussed under the name &lt;strong&gt;PHP2Shell&lt;/strong&gt;. Both have a &lt;strong&gt;CVSS v4.0 severity score of 9.2 out of 10&lt;/strong&gt;. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-2&quot;&gt;[2]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-8&quot;&gt;[8]&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;callout&quot;&gt;&lt;p&gt;&lt;strong&gt;Ask your host or technical team:&lt;/strong&gt; Have both CVEs been fixed in the PHP installation that actually serves my website?&lt;/p&gt;&lt;p&gt;The PHP project released &lt;strong&gt;8.2.35, 8.3.36, 8.4.27 and 8.5.12&lt;/strong&gt; with the fixes. A vendor may provide a security backport under a different package version. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-1&quot;&gt;[1]&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;h2&gt;What does 9.2 out of 10 mean?&lt;/h2&gt;
&lt;p&gt;CVSS, the Common Vulnerability Scoring System, describes technical severity on a scale from zero to ten. Scores from &lt;strong&gt;9.0 to 10.0 are critical&lt;/strong&gt;, the highest category. The assessment considers how an attack can reach a system, what conditions it needs, and the possible effects on data and service availability. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-13&quot;&gt;[13]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For these flaws, the published assessment describes a network attack requiring neither an existing account nor a user&apos;s involvement. It also assigns high attack complexity and additional attack requirements. &lt;strong&gt;9.2 does not mean a 92 percent chance of being hacked.&lt;/strong&gt; Exposure depends on the installation, configuration and reachable attack paths. The score does not establish that a break-in has already happened. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-2&quot;&gt;[2]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Beyond WordPress: Laravel, Symfony and larger PHP systems&lt;/h2&gt;
&lt;p&gt;PHP is the runtime that executes application code on the server. Laravel, Symfony and Laminas are frameworks used to build systems such as customer portals, booking tools and APIs. Updating their libraries does not replace a PHP runtime update. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-14&quot;&gt;[14]&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;System&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Examples&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;What could be at stake after a successful compromise&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Websites and content systems&lt;/td&gt;&lt;td&gt;WordPress, Drupal&lt;/td&gt;&lt;td&gt;Content, publishing accounts and stored user information&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Custom business applications&lt;/td&gt;&lt;td&gt;Laravel, Symfony, Laminas&lt;/td&gt;&lt;td&gt;Customer documents, account data and connected business processes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Online shops&lt;/td&gt;&lt;td&gt;WooCommerce, Shopware, Magento Open Source, Adobe Commerce&lt;/td&gt;&lt;td&gt;Orders, customer information and checkout behaviour&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p class=&quot;small&quot;&gt;These products use PHP. This is not a finding that every installation is exploitable through the same path. The actual consequences depend on access rights and application design. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-4&quot;&gt;[4]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-14&quot;&gt;[14]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-15&quot;&gt;[15]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-16&quot;&gt;[16]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Laravel or Symfony example:&lt;/strong&gt; A business stores invoices and uploaded documents in a customer portal. If an attacker achieves code execution in the web process, files or databases accessible to that process could become accessible to the attacker. A login screen is not sufficient protection if the vulnerable request handling can be reached before authentication. This is a hypothetical damage scenario, not a report of a named victim.&lt;/p&gt;
&lt;h2&gt;What running code on a server actually means&lt;/h2&gt;
&lt;p&gt;A PHP website already runs code during normal visits: WordPress loads posts, a Laravel application processes a booking, and a shop creates an order. Remote code execution means an attacker can make the server execute additional, attacker-controlled instructions.&lt;/p&gt;
&lt;p&gt;The following are possible consequences of a successful compromise. They depend on permissions, stored secrets, available services and permitted network connections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remote control through a reverse shell.&lt;/strong&gt; The server opens an outbound connection to an attacker-controlled system, through which the attacker can send further commands and receive results. The outbound connection must be possible. Commands initially run with the compromised process&apos;s rights, not automatically with administrator or root privileges. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-18&quot;&gt;[18]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A later entry point through a webshell.&lt;/strong&gt; With sufficient write access, an attacker could leave malicious code in a website file that the server can execute. Subsequent web requests can invoke it. A PHP update does not remove that file. A reverse shell connection is a different mechanism and does not automatically survive a restart. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-17&quot;&gt;[17]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data theft.&lt;/strong&gt; An attacker could copy customer names, addresses, orders or documents if the process can read them or access the relevant database. Application configuration can contain database connection details. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-9&quot;&gt;[9]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Website manipulation and SEO spam.&lt;/strong&gt; Write access could allow altered content, fraudulent login pages or unwanted advertising pages. SEO spam uses injected content to draw search visitors towards the attacker&apos;s offers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spam and phishing emails.&lt;/strong&gt; If mail sending or usable mail credentials are available, the server could send unwanted or fraudulent messages. An abused sending IP being blocked can also disrupt legitimate business email. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-19&quot;&gt;[19]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Botnet participation and DDoS.&lt;/strong&gt; A botnet is a group of remotely controlled machines. The server could help overwhelm another service with traffic while its own website still appears normal. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-19&quot;&gt;[19]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cryptomining and proxy abuse.&lt;/strong&gt; Attackers could use computing power to mine cryptocurrency, or bandwidth to relay other traffic. Slow applications, exhausted quotas and additional usage-based charges are possible consequences. Permissions and network access determine what is feasible. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-17&quot;&gt;[17]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deleted or encrypted files.&lt;/strong&gt; With the necessary write permissions, attackers could damage application files or accessible data. Recovery depends on usable backups and a clean environment. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-19&quot;&gt;[19]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;These are post-compromise scenarios, not confirmed activities at a named PHP2Shell victim.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Recent cases show what the damage can look like&lt;/h2&gt;
&lt;p&gt;These investigations concern other compromises and entry paths. They illustrate documented consequences of malicious code on websites. Their dates are publication dates, not evidence of attacks using the current PHP2Shell flaws.&lt;/p&gt;
&lt;h3&gt;September 2026: a WordPress backdoor returned after removal&lt;/h3&gt;
&lt;p&gt;On 30 September 2026, Sucuri described a WordPress infection whose backdoor returned within seconds of deletion. Components were distributed across files, the database and shared memory, allowing surviving components to restore others. The investigated code could also create a hidden administrator account. Deleting the visible malicious file did not end access. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-10&quot;&gt;[10]&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;May 2026: repeated spam redirects traced to a server backdoor&lt;/h3&gt;
&lt;p&gt;A Wordfence investigation published on 20 May 2026 described a WordPress site opening spam pages in new browser tabs. Removed code returned within hours. A server investigation eventually found a root-level backdoor around webmail software. That privilege escalation belonged to this specific incident; it is not an automatic consequence of every PHP flaw. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-11&quot;&gt;[11]&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;March 2025: stolen checkout information in a WooCommerce shop&lt;/h3&gt;
&lt;p&gt;On 14 March 2025, Sucuri reported malicious checkout code sending card and billing information to another server, alongside a hidden PHP backdoor. Customers had reported unusual card activity after shopping there. The report did not establish the original entry method or a reliable financial loss total. Ordinary shoppers were affected by the shop&apos;s compromise. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-12&quot;&gt;[12]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Why an updated application can still sit on vulnerable PHP&lt;/h2&gt;
&lt;p&gt;Application updates, plugin updates and PHP updates are separate maintenance tasks. The host determines which runtime packages are available. Managed hosting can include runtime maintenance, but operators should obtain confirmation that the fix is deployed. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-4&quot;&gt;[4]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For example, a fully updated WordPress installation could still use PHP 8.3.35 without a vendor security backport. New WordPress files do not fix the runtime underneath them. The same separation applies to Laravel, Symfony and PHP-based shops.&lt;/p&gt;
&lt;p&gt;The official advisory describes a demonstrated attack against Apache with &lt;code&gt;mod_php&lt;/code&gt; that starts before application code runs. Application-level protection may therefore act too late for that path. A WordPress maintenance plugin is not reliable isolation of vulnerable PHP. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-2&quot;&gt;[2]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;What is established about the vulnerabilities&lt;/h2&gt;
&lt;p&gt;CVE-2026-109618 concerns memory exhaustion interrupting initialization of internal request data. CVE-2026-109619 involves internal state surviving beyond the lifetime of its backing memory and being reused by a later request. Both can lead to attacker-controlled code execution. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-2&quot;&gt;[2]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Describing the issue solely as an upload-progress flaw is incomplete. &lt;code&gt;session.upload_progress&lt;/code&gt; is involved in confirmed paths, but the reports describe others. The initial rights are those of the PHP web process. CERT-EU&apos;s early warning described potential exposure going back to PHP 5; release decisions should now follow the fixes and vendor guidance for the actual package. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-5&quot;&gt;[5]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Which PHP versions contain the fixes?&lt;/h2&gt;
&lt;div class=&quot;table-wrap&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Release branch&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;Fixed release&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&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;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.4&lt;/td&gt;&lt;td&gt;8.4.27&lt;/td&gt;&lt;/tr&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;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;Source: PHP&apos;s 21 October 2026 security announcement. PHP 8.1 and older no longer receive normal updates from the PHP project. Exceptional minimal source backports for 7.4, 8.0 and 8.1 do not replace installing a corrected package or planning an upgrade to a supported branch. Distribution and LTS customers should request confirmation for both CVEs. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-1&quot;&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;What website operators should do now&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Name the owner.&lt;/strong&gt; Identify whether the host, agency or internal team can patch PHP. One person should collect confirmation for every affected website.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check the actual web runtime.&lt;/strong&gt; In WordPress, look under &lt;em&gt;Tools → Site Health → Info → Server&lt;/em&gt;. For custom applications, ask the responsible team for the production web service&apos;s package and patch status. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-4&quot;&gt;[4]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arrange the security update.&lt;/strong&gt; Where possible, patch within the current supported branch first. A larger version upgrade with old plugins needs a separate compatibility check. Keep a usable backup and run a focused functionality check.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify deployment.&lt;/strong&gt; Obtain the package version or vendor backport reference, confirm all relevant processes use it, then check login, forms, uploads and checkout.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contain unpatched systems.&lt;/strong&gt; If patching cannot happen promptly, the technical team should assess isolation from public networks. A static maintenance page can remain visible if requests genuinely stop reaching vulnerable PHP. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-5&quot;&gt;[5]&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;A message you can send to your host&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;Please confirm whether CVE-2026-109618 and CVE-2026-109619 are fixed in the production PHP installation serving my domain or application. Which package version or security backport is active? Do all affected web processes use the corrected runtime? If not, when will you update it, and how will the site be protected until then?&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;Why one configuration setting is not a complete fix&lt;/h2&gt;
&lt;p&gt;Disabling &lt;code&gt;session.upload_progress.enabled&lt;/code&gt; blocks confirmed session paths for CVE-2026-109619 only when the setting applies early enough and every worker is restarted. Other paths remain. Application-level &lt;code&gt;ini_set()&lt;/code&gt; is not sufficient for this purpose. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The PHP team states that only an update completely addresses the vulnerabilities. Firewall rules and filters are additional controls. A normal-looking website or one negative online test does not prove that its runtime is fixed. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-1&quot;&gt;[1]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;A deployment checklist for Laravel, Symfony and other PHP applications&lt;/h2&gt;
&lt;p&gt;The following is operational guidance based on the published findings:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Check the web service, not just the terminal.&lt;/strong&gt; &lt;code&gt;php -v&lt;/code&gt; reports the invoked CLI binary. The website may use a different PHP-FPM pool, container or server.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Inventory all instances.&lt;/strong&gt; Include production, publicly accessible staging, old subdomains and PHP-based administration tools. Updated container images must actually be deployed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Renew running processes.&lt;/strong&gt; Updated files alone do not prove that workers and long-running processes use the corrected runtime.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Separate library and runtime updates.&lt;/strong&gt; &lt;code&gt;composer update&lt;/code&gt; installs application dependencies; PHP itself is a separate deployment component.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Record evidence.&lt;/strong&gt; Keep package identifiers, vendor references covering both CVEs, deployment scope, restarts and functionality checks.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Should you switch languages or platforms?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;My assessment:&lt;/strong&gt; Patching takes priority during the incident. Moving to Node.js, Python or another platform is a separate migration project with testing and new operational responsibilities. A language change offers no blanket security guarantee.&lt;/p&gt;
&lt;div class=&quot;table-wrap&quot;&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th scope=&quot;col&quot;&gt;Situation&lt;/th&gt;&lt;th scope=&quot;col&quot;&gt;What to assess after patching&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;WordPress works and updates are reliable&lt;/td&gt;&lt;td&gt;Continue with clear ownership of PHP, plugins, backups and emergency updates.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A simple company website or blog without customer accounts&lt;/td&gt;&lt;td&gt;Consider static generation, for example with Astro. Prebuilt HTML can be served without executing PHP. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-6&quot;&gt;[6]&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A shop or feature-rich business application&lt;/td&gt;&lt;td&gt;Compare managed operation with self-hosting, including patch ownership and response times.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;An old custom application repeatedly blocks updates&lt;/td&gt;&lt;td&gt;Assess modernization or migration, including budget, data transfer, integrations and maintenance.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;A new frontend does not remove an old backend. If WordPress remains publicly reachable as a CMS or API, its PHP installation still needs maintenance. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-7&quot;&gt;[7]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;A patch does not settle whether an earlier break-in happened&lt;/h2&gt;
&lt;p&gt;Patching closes the flaws. It does not automatically remove planted malware or undo stolen credentials. Unknown accounts, changed files and suspicious processes warrant a separate investigation. A lack of suspicious log entries is not proof of a clean system. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-3&quot;&gt;[3]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Investigators should also examine outbound connections, mail activity and load spikes. Where compromise is suspected, isolate the server, preserve logs and investigate both the entry point and any retained access or exposed credentials. &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-17&quot;&gt;[17]&lt;/a&gt; &lt;a href=&quot;https://catalinwaack.com/en/blog/php2shell-php-security-update#source-19&quot;&gt;[19]&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Sources and reporting method&lt;/h2&gt;
&lt;p class=&quot;method&quot;&gt;This article synthesizes publicly available primary sources. It does not report original exploit testing or an investigation of affected customer systems. Operational recommendations and platform comparisons are the author&apos;s assessment. Check for newer vendor guidance before acting at a later date.&lt;/p&gt;
&lt;ol class=&quot;sources&quot;&gt;
&lt;li id=&quot;source-1&quot;&gt;&lt;a href=&quot;https://www.php.net/archive/2026.php&quot;&gt;PHP project: security advisory and releases, 21 October 2026&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-2&quot;&gt;&lt;a href=&quot;https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w&quot;&gt;PHP project: CVE-2026-109618, RCE via OOM corruption&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-3&quot;&gt;&lt;a href=&quot;https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp&quot;&gt;PHP project: CVE-2026-109619, RCE via stale global state&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-4&quot;&gt;&lt;a href=&quot;https://wordpress.org/support/update-php/&quot;&gt;WordPress.org: updating PHP&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-5&quot;&gt;&lt;a href=&quot;https://cert.europa.eu/publications/security-advisories/2026-018&quot;&gt;CERT-EU: Security Advisory 2026-018, published before the patches&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-6&quot;&gt;&lt;a href=&quot;https://docs.astro.build/en/guides/on-demand-rendering/&quot;&gt;Astro: static and on-demand rendering&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-7&quot;&gt;&lt;a href=&quot;https://developer.wordpress.org/rest-api/&quot;&gt;WordPress: REST API Handbook&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-8&quot;&gt;&lt;a href=&quot;https://watchtowr.com/intelligence/php-cve-2026-109618-faq/&quot;&gt;watchTowr: PHP2Shell FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-9&quot;&gt;&lt;a href=&quot;https://developer.wordpress.org/advanced-administration/wordpress/wp-config/&quot;&gt;WordPress: configuration and database connection details&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-10&quot;&gt;&lt;a href=&quot;https://blog.sucuri.net/2026/09/sc-wordpress-malware-a-self-healing-mesh-of-loaders-drop-ins-and-a-blockchain-controlled-backdoor.html&quot;&gt;Sucuri: SC WordPress malware investigation, 30 September 2026&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-11&quot;&gt;&lt;a href=&quot;https://www.wordfence.com/blog/2026/05/how-a-webmail-log-file-became-a-root-level-backdoor/&quot;&gt;Wordfence: webmail and root-level backdoor investigation, 20 May 2026&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-12&quot;&gt;&lt;a href=&quot;https://blog.sucuri.net/2025/03/credit-card-skimmer-and-backdoor-on-wordpress-e-commerce-site.html&quot;&gt;Sucuri: WooCommerce skimmer investigation, 14 March 2025&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-13&quot;&gt;&lt;a href=&quot;https://www.first.org/cvss/v4.0/specification-document&quot;&gt;FIRST: CVSS v4.0 specification and severity ratings&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-14&quot;&gt;&lt;a href=&quot;https://laravel.com/framework/docs/13.x/deployment&quot;&gt;Laravel deployment&lt;/a&gt;, &lt;a href=&quot;https://symfony.com/doc/current/setup.html&quot;&gt;Symfony setup&lt;/a&gt;, &lt;a href=&quot;https://docs.laminas.dev/tutorials/getting-started/overview/&quot;&gt;Laminas overview&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-15&quot;&gt;&lt;a href=&quot;https://www.drupal.org/docs/getting-started/system-requirements/php-requirements&quot;&gt;Drupal PHP requirements&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-16&quot;&gt;&lt;a href=&quot;https://developer.shopware.com/docs/guides/hosting/&quot;&gt;Shopware hosting&lt;/a&gt;, &lt;a href=&quot;https://experienceleague.adobe.com/en/docs/commerce-operations/installation-guide/system-requirements&quot;&gt;Adobe Commerce and Magento Open Source requirements&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-17&quot;&gt;&lt;a href=&quot;https://attack.mitre.org/techniques/T1505/003/&quot;&gt;MITRE ATT&amp;amp;CK: Web Shell&lt;/a&gt;, &lt;a href=&quot;https://attack.mitre.org/techniques/T1090/&quot;&gt;MITRE ATT&amp;amp;CK: Proxy&lt;/a&gt;, &lt;a href=&quot;https://attack.mitre.org/techniques/T1496/&quot;&gt;MITRE ATT&amp;amp;CK: Resource Hijacking&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-18&quot;&gt;&lt;a href=&quot;https://blog.cloudflare.com/how-cloudflares-ai-waf-proactively-detected-ivanti-connect-secure-critical-zero-day-vulnerability/&quot;&gt;Cloudflare: technical analysis explaining a reverse shell. Terminology reference, not a PHP2Shell incident report&lt;/a&gt;&lt;/li&gt;
&lt;li id=&quot;source-19&quot;&gt;&lt;a href=&quot;https://blog.sucuri.net/2026/03/web-shells.html&quot;&gt;Sucuri: webshell risks, investigation and removal, 26 March 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</content></entry>
</feed>
