On this page
- What counts as "exploited" here?
- What do the primary sources actually say?
- Why does "no confirmed victim" not mean "nothing happened"?
- Who is affected?
- Why does a version number not prove a fix?
- How do I fix it?
- Am I affected?
- What should I look for if I was exposed since 17 October?
- What is the third PHP notice?
- What does the free scan show here?
PHP2Shell attempts are documented, a confirmed compromise is not. AWS honeypots logged an attempt on 17 October, four days before disclosure, and watchTowr and Cloudflare report attack traffic since, while the Canadian Cyber Centre had identified none at its 23 October update. No primary source we found names a hacked site. The action is the same either way: run a patched PHP, restart the workers, and check your logs from 17 October.
| Fact | Status at our check on 24 October 2026 | Source |
|---|---|---|
| CVE ids and severity | CVE-2026-109618 and CVE-2026-109619, CVSS v4 9.2 | GHSA-w8hw-w9fx-j79w |
| Disclosed | 21 October 2026 | PHP notice |
| Fixed releases | 8.5.12, 8.4.27, 8.3.36, 8.2.35 | PHP notice |
| Earliest attempt on record | 17 October 2026, AWS honeypot (vendor-claimed) | AWS |
| Attempts after disclosure | Reported by AWS, watchTowr and Cloudflare (vendor-claimed). The Canadian Cyber Centre had identified none at its 23 October update | watchTowr, Cloudflare |
| Confirmed compromise of a named site | None found in a primary source | This page |
| Lab remote code execution | Validated against Apache mod_php, per the advisory | GHSA |
What counts as "exploited" here?
Three different things get called exploitation in headlines. They need different words.
| Word | What it means | Evidence at our check on 24 October 2026 |
|---|---|---|
| Demonstrated | Code was run in a lab | Yes, validated against mod_php per the PHP advisory |
| Attempted | Someone sent requests aimed at the bug | Yes, per AWS, watchTowr and Cloudflare |
| Compromised | A real site or server was taken over | No primary source names one, and AWS says it is unclear whether any attempt would have succeeded on a real system |
"Exploited in the wild" is a fair label for the second row if you say what it rests on. It is a stretch for the third. We use "attempts" for attempts and keep "compromised" for a site where someone has evidence.
What do the primary sources actually say?
Each line is a source speaking about its own data. AWS, watchTowr, Cloudflare and Patchstack describe their own telemetry, so treat those as vendor-claimed. The government bodies publish assessments and advisories, not observations of their own.
- AWS (21 October): its MadPot honeypot telemetry dates activity to 17 October, from an IP address associated with a commercial anonymization network. AWS says it remains unclear how the actor got exploit information before disclosure, and that it is unclear whether any attempt would have succeeded on a real system. It says PHP2Shell is now seeing broad exploitation attempts in the wild after public proof-of-concept exploits appeared within hours of disclosure.
- watchTowr (updated 22 October): its Attacker Eye honeypot network observed exploitation of both CVEs in the wild (vendor-claimed). The page names no victim.
- Cloudflare (21 October, updated 23 October): it observed attack traffic targeting its customers and says attackers were mutating the attack to try to bypass its protections. It says customers should patch their PHP even with WAF protection.
- Patchstack: its timeline records hosting partners reporting multiple active exploitation incidents, then a later entry saying its own telemetry showed only probing attacks with no hard evidence of breaches yet.
- CERT-EU (v1.2, 23 October): initial proofs of concept have begun to circulate, which raises the likelihood that attackers are already exploiting the vulnerabilities. That is an assessment, not an observation.
- The PHP project: its notice and advisories describe the bugs and the fixes. They contain no statement about attacks in the wild.
- Canadian Cyber Centre (AL26-026, updated 23 October): says it was not identifying active exploitation at that time and that this can change quickly. It notes open-source reporting of a public proof of concept. That differs from the vendor telemetry above, which is why this page separates attempts from confirmed compromise.
- UK NCSC and Dutch NCSC (21 October): both describe the flaws as exploitable and neither claims that exploitation is happening.
Why does "no confirmed victim" not mean "nothing happened"?
AWS advises detections that do not rely on a signature for a specific CVE, because first exploitation often precedes signatures. A known request pattern is not a complete test.
So read "no named victim" as a statement about what has been published at one date. It says nothing about your server.
Who is affected?
Any site served by PHP. The PHP project says all PHP installations serving web requests are at risk, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed, and considers the risk highest for mod_php. WordPress, WooCommerce, Magento, Shopware, Drupal, Joomla and Laravel run on PHP. Cloudflare says website code or plugin updates alone do not fix these flaws and administrators need to update the PHP runtime. The full picture is on the PHP2Shell page, the fixes are in the other PHP2Shell guides, and whether a WAF changes any of this has its own answer.
PHP 8.1 and older no longer receive updates from the PHP project. The PHP security team provided minimal source backports for 7.4, 8.0 and 8.1, and some distributions and LTS vendors provide backported fixes. Treat an old branch as exposed until your vendor names the fix.
Why does a version number not prove a fix?
A backported fix can keep its old version number, because some distributions and LTS vendors provide backports. So "we are on 8.4" proves nothing in either direction. The table of fixed builds is on the fixed versions page, and the limits of an outside check are on what a checker can confirm.
How do I fix it?
What do I do if a host manages PHP for me?
If you are on shared hosting, what else to ask your provider is on its own page. Send support this and keep the reply:
For [your domain], is the PHP runtime that serves web requests patched for CVE-2026-109618 and CVE-2026-109619? Please give the fixed package, build or backport identifier, confirm that all PHP-FPM, CGI or Apache workers serving it have been restarted or replaced, and say whether I need to redeploy or change a setting.
- Get the build or package identifier in writing
- Get the time the workers were restarted or replaced
- Ask whether the host kept logs from 17 October that you can see
What do I do if I manage the server myself?
- Install the fixed PHP from your distribution or vendor, then restart PHP-FPM or Apache
- Rebuild and redeploy every container image that bundles PHP
- Check each virtual host and each PHP version separately
- Apply the PHP project's temporary measures only as a stopgap. The notice says only an update is a complete solution and the measures do not make an installation safe
Am I affected?
Am I affected? Where you stand right now
A passive check from outside can say what the site serves. It cannot say what ran inside it, or whether anything arrived before the patch.
- Detected Your site serves PHP and the exposed version is below the fixed release for its branch. Treat it as exposed. Patch and restart, then do the look-back below.
- Unknown The version is hidden, or could be a backport. This is the common case. Ask the host or check the server for the package changelog naming both CVEs and the restart time.
- Confirmed by owner evidence You hold a package changelog or build record that names both CVEs, and a restart or redeploy after it. The runtime is patched. Whether anything got in earlier is a separate question.
No scan, ours included, moves you from "unknown" to "confirmed". Patch state and compromise evidence are two separate answers.
What should I look for if I was exposed since 17 October?
AWS recommends starting the review on 17 October, not on the disclosure date. It points to web server logs, POST requests in form uploads that carry the PHP session upload progress field name, unexpected process execution and unexpected file changes. That field name alone does not prove an attack, because legitimate applications can use the feature.
AWS says upgrading is the only complete remediation for both CVEs. Patching does not tell you whether anything ran before it, so the log review above still applies. If something looks wrong, how to tell whether a site was hit is covered separately.
What is the third PHP notice?
On 23 October the PHP project published an informational advisory naming CVE-2026-115560 in session upload progress, with a full advisory promised for the next release. PHP says it needs an unusual combination of configuration and application code, and suggests setting session.upload_progress.enabled=0 until the next bugfix release. For CVE-2026-109619, PHP's advisory lists the same setting as a mitigation for the session lifecycle path only. It says the setting does not mitigate the other lifecycle paths and that updating is the only reliable mitigation. The 23 October notice makes no statement about attacks. It is a different issue from the two PHP2Shell CVEs.
What does the free scan show here?
The free scan identifies the technologies your site serves, looks each version up in public vulnerability records, and says whether a version is affected. It is a lookup. It cannot see a vendor backport, which runtime serves a virtual host, or whether workers restarted, and it cannot tell you whether anyone attempted anything on your server. The wider October context is on the security meltdown tracker.
Questions people ask
Is PHP2Shell being exploited in the wild?
Attempts are documented. AWS saw one on 17 October, four days before disclosure, and watchTowr and Cloudflare report attack traffic after it. None of them names a site that was taken over, and AWS says it is unclear whether any attempt would have worked on a real system.
Do we know of any websites that have actually been compromised?
At our check on 24 October 2026, no primary source we could find names a compromised site. That absence is not proof that nothing happened. It is why the advice is to patch first and then look back to 17 October.
My site was not hacked, so did I need to patch?
Yes. Attempts and compromise are different things, and a quiet site has not shown that PHP2Shell passed it by. Anything running unpatched PHP that was reachable from the internet is in scope until the running PHP is confirmed fixed and restarted.
How do I know if PHP2Shell hit my site?
No single log line proves it. AWS advises starting the review on 17 October, looking for POST requests with the PHP_SESSION_UPLOAD_PROGRESS string in form uploads, and checking web application servers for unexpected process execution or file modification.
Does a WAF mean I can wait to patch?
No. Cloudflare says customers should patch their PHP even with its WAF protection on. A WAF rule is one layer in front of the site and does not change the PHP running behind it.
Sources
- PHP security notice, 21 October 2026 (php.net)Names both CVEs, the fixed releases and the scope. It contains no statement about attacks in the wild. At our check on 24 October 2026.
- Amazon Threat Intelligence: PHP2Shell exploitation prior to public disclosure in MadPot (AWS Security Blog, 21 October 2026)Vendor telemetry from honeypots. AWS says it is unclear whether any attempt would have succeeded on a real system. At our check on 24 October 2026.
- watchTowr: PHP2Shell incident page (updated 22 October 2026)Says its honeypot network observed exploitation of both CVEs in the wild. Vendor-claimed. Names no victim. At our check on 24 October 2026.
- Cloudflare: PHP vulnerabilities and WAF protection (21 October 2026, updated 23 October)Says it saw attack traffic against its customers. Vendor-claimed. Also says to patch even with WAF protection.
- Patchstack: PHP major vulnerability alertTimeline of hosting-partner reports, then probing with no hard evidence of breaches in a later entry.
- CERT-EU security advisory 2026-018 (v1.2, 23 October 2026)Says public proof-of-concept code raises the likelihood that attackers are already exploiting the flaws.
- UK NCSC: critical security issue affecting PHP (21 October 2026)Defensive actions. It does not say the flaws are being exploited.
- Canadian Centre for Cyber Security alert AL26-026 (21 October 2026, updated 23 October)Government alert. Says no active exploitation was identified at that time, and that this can change quickly.
- NCSC-NL advisory NCSC-2026-0443 (21 October 2026)
- GHSA-w8hw-w9fx-j79w: CVE-2026-109618 (php/php-src advisory)CVSS v4 9.2. Does not state whether exploitation has been observed.
- GHSA-6wmf-4rv5-p3rp: CVE-2026-109619 (php/php-src advisory)
Facts on this page are dated and point at the primary source next to them. If a vendor status changes after the date shown, the vendor's page wins; tell us at support@run.cloud and we will update it.