Skip to content
Aman SinghWriting

PHP2Shell: what we know about CVE-2026-109618 and CVE-2026-109619

Two critical PHP flaws, who is seeing attacks, how big the exposure is and what to do first.

CybersecurityAman Singh23 October 202613 min read

On 21 October 2026 the PHP project shipped an emergency release for two bugs that let an unauthenticated attacker run code on a server. PHP runs about 69 percent of the websites whose server language anyone can identify1. So when CISA, the UK's NCSC and CERT-EU all told people to patch or take the system offline2, 3, 4, governments from the Netherlands to Australia did exactly that to some of their own sites5, 6.

I read PHP's advisories, the write-ups from the three teams that found the bugs, the commit that fixes them, a dozen vendor posts and the government alerts. This post pulls that together. It has nine charts and a numbered reference for every claim that needs one.

The research cut-off is 22 October. The story is still moving, so check the references before you act on anything here.

How to read this
  • Reported. Stated by the PHP project, a government body, a vendor or a named publication, with the source cited. A vendor's statement is that vendor's own account, not an independent finding.
  • Claimed. Said by one party and not confirmed by anyone else.
  • My analysis. My reading, reconstruction or recommendation. The chart scores and the ATT&CK mapping are mine.

The short version

The bugsCVE-2026-109618, "RCE via OOM corruption"7. CVE-2026-109619, "RCE via stale global state"8.
Who is affectedAny PHP version from 5.4 up, as far as the vendors say9, 10. Apache with mod_php is the worst case11.
Needs a loginNo. The request comes over the network and needs no user interaction7.
Fixed in8.5.12, 8.4.27, 8.3.36 and 8.2.35, released 21 October. Source-only backports exist for 7.4, 8.0 and 8.1. Nothing from upstream for 7.3 and older11.
AttacksAttempts since 17 October12. No published, confirmed breach yet. CISA's catalog lists neither CVE13.

The severity score depends on who you ask, and the spread is wider than you would expect for one pair of bugs.

Loading chart

Figure 1. One pair of bugs, four severity scoresBands are under 4 low, 4 to 7 medium, 7 to 9 high, 9 and up critical. The pink bar marks the top of the scale.
Show the data
SourceScore
PHP CNA, CVSS v4.09.2
NVD, CVSS 3.19.8
Red Hat, SUSE, Amazon, CVSS 3.18.1
The leaked score (wrong)10

PHP's own CNA scores both at 9.2 on CVSS v4.0, and NVD says 9.8 on CVSS 3.114. Red Hat, SUSE and Amazon Linux say "Important" at 8.1. Red Hat's argument is that reliable exploitation needs precise heap work, and that its default PHP-FPM setup exits workers on early-init failure15. The 10.0 that circulated on 20 October was wrong16. I would plan around the high scores. A vendor rating tells you about its own build, not about the PHP binary you installed by hand.

What broke

Both bugs come from one habit. When PHP runs out of memory mid-request, it aborts with a longjmp, which internally is zend_bailout. The jump skips whatever the interrupted code was doing. Request shutdown then cleans up whatever state it finds7, 8. Half-built state looks like finished state, and PHP trusts it.

CVE-2026-109618 is the first version of that mistake. An out-of-memory error interrupts PHP while request data is only partly set up, and cleanup treats the invalid data as valid7. CVE-2026-109619 is the second. Request-owned state survives after its memory is freed, and a later request on the same worker uses it8.

PHP's advisory is blunt about mod_php. An unauthenticated request "can trigger the attack before any application code runs"11. There is no plugin to audit and no application code to blame, and a WAF written in PHP never sees the request.

Wiz found four separate bugs under the two CVEs and demonstrated unauthenticated code execution against the stock WordPress, Drupal and Joomla container images9. The chart below scores them on six things a defender cares about. Read each line left to right.

Loading chart

Figure 2. Four bugs, six ways to be scaryMy scoring, 0 to 5, from my own reading of the sources. It is judgement, not measurement. Bug numbers follow Wiz's table.
Show the data
BugPre-auth reachBefore app codeOn by defaultPublic evidenceEasy to exploitBlast radius
1 Upload-progress unserializer UAF554425
2 Process-memory disclosure555443
3 Fatal-backtrace UAF (8.5 only)432325
4 OPcache type confusion423115

The memory leak is the one that makes the rest practical. Wiz says a leftover pointer lets the next multipart request copy reclaimed heap memory into a PHPSESSID response cookie, even if the application never calls session_start()9. JPCERT/CC lists abnormally long or malformed PHPSESSID cookies among its indicators17. If a host was exposed, assume that any secret that passed through its workers could have been read. That includes session cookies and API keys, not only what sits on disk.

Sources disagree on which CVE covers which of Wiz's four bugs. Wiz's blog table, Wiz's own php2shell.com and PHP's advisories all differ in places. I use PHP's mapping, since one release fixes everything. It only matters when a scanner or ticket calls one CVE "the info-leak one".

They also disagree on affected versions. The CVE records list 8.2 and up, yet PHP shipped backports for 7.4, 8.0 and 8.1, and Google and Wiz say 5.4 through 8.511, 10, 9. I treat everything from 5.4 up as affected until someone shows me otherwise.

How the fix works

The fix commit is by Arnaud Le Blanc, authored on 18 October. It adds a soft memory limit that queues the usual error instead of jumping out mid-allocation. It also adds a hard limit that prints "Hard memory limit exhausted" and calls _exit(137) with no shutdown handlers. The new INI setting is memory_hard_limit_percent, which defaults to 200 percent of memory_limit, or the limit plus 1 GiB when the limit is above 1 GiB18. An engine change this deep brings regressions, and the project filed one against the hard exit within hours of the release19.

Who knew, and when

The bugs are old. Bug 78876, an out-of-memory crash on long multipart variables, was filed in 2020 and left alone because nobody had shown it was exploitable20. A 2024 audit saw the first signs, and competing fixes stalled for months16, 21.

The recent timeline starts on 30 July, when Calif began a PHP audit. Calif reported an unconditional code execution bug on 11 August, and OpenAI reported the same root cause the same day. Wiz found its first bug on 19 August, reported on 24 August and heard back from PHP on 21 September16, 20, 9.

Loading chart

Figure 3. Who saw what, whenUTC. Where a source gave only a date, the dot sits at noon. Vendor reports describe traffic, not confirmed compromises.
Show the data
When (UTC)LaneEvent
2026-10-17 12:00Attacker trafficAWS MadPot: first attempt (time not published)
2026-10-18 12:00Leaks and disclosureFix commit authored (18 Oct)
2026-10-20 15:00Leaks and disclosureCVE IDs leak with the wrong CVSS
2026-10-20 19:30Leaks and disclosurePHP posts advance notice
2026-10-20 20:00Leaks and disclosureCalif PoC video posted by mistake
2026-10-21 02:00Attacker trafficAWS: multiple actors
2026-10-21 03:02Defender movesCloudflare WAF rules on for every plan
2026-10-21 07:41Defender movesChainguard ships fixed images early
2026-10-21 07:43Vendor claimsCloudflare reports early attacks
2026-10-21 08:36Attacker trafficELLIO: first request
2026-10-21 08:37Attacker trafficVulnCheck canary: scanner UA php2shell-scan
2026-10-21 13:34Defender movesGHSAs published
2026-10-21 14:00Leaks and disclosureOfficial release time
2026-10-21 14:19Vendor claimswatchTowr: active exploitation
2026-10-21 14:38Attacker trafficELLIO: Mirai-style loader
2026-10-21 17:22Attacker trafficVulnCheck canary: shell plant attempt (failed)
2026-10-21 23:08Attacker trafficELLIO: web-shell write
2026-10-22 03:46Attacker trafficELLIO: booter, ASPX shell, Go RAT
2026-10-22 05:30Vendor claimsVulnCheck: weaponized exploit (customers only)

Then the embargo came apart in three places. The CVE IDs leaked around 15:00 UTC on 20 October with the wrong score. Calif posted a proof-of-concept video by mistake. Chainguard shipped fixed container images at 07:41 UTC on 21 October, more than six hours before the coordinated release, and anyone could diff them against the old ones16. Cloudflare reported early attacks at 07:43, two minutes after those images went public. Nothing I read links the two, so treat the timing as an observation, not a finding.

Is anyone being attacked?

Yes, there are attempts. Nobody has published a confirmed breach. Both statements are true at once.

Reported. Amazon's MadPot honeypot logged the first attempt on 17 October, four days before disclosure. Amazon says the bugs are now "broadly exploited" and adds that it is "unclear if any of these attempts would have succeeded"12. ELLIO logged a first request at 08:36 UTC on 21 October, a Mirai-style loader at 14:38 and a web-shell write at 23:0822. VulnCheck's canaries caught scanners with php2shell-scan user agents, and one attempt to plant a web shell through the upload-progress session file. That attempt failed23. Arctic Wolf saw id checks followed by wget pulls, with Mirai-derived botnet samples on the other end. It says its data does not show any sample running24. watchTowr says its honeypots saw exploitation from 21 October, with no payloads or paths25.

Reported, the other way. CISA said it had not observed exploitation, and its catalog lists neither CVE2, 13. Bitdefender saw no attempts in its own telemetry26.

Reported, and new. VulnCheck says it has a working exploit for CVE-2026-109618 on x86-64 with ASLR on, for PHP 8.4.10 through 8.4.26. On ARM64 the leak works but code execution does not yet. It sells the exploit to its own customers, so nobody outside can check it23. Earlier reports said exploitation needed ARM64 or ASLR switched off27. That is no longer the safe assumption.

My analysis. Scanning and attempts are certain, and plenty of vendors see them. A published confirmed compromise does not exist yet. That is weak comfort, because a successful hit can return HTTP 200 with no crash28 and the memory leak leaves almost nothing behind. The agencies that say "none observed" mean a confirmed breach. The ones that say "aware of reports" are counting honeypot attempts. Both are right.

In ATT&CK terms the traffic so far is T1190, exploiting a public-facing application, then T1105, ingress tool transfer, and in one case T1505.003, a web shell29. Those are my labels.

One warning. Hundreds of proof-of-concept repositories appeared on GitHub within hours, and VulnCheck says very few are legitimate exploits23. Some are pranks26. Don't run any of them on a machine you care about.

How big is the exposure?

Depends who counts, and what.

VirusTotal found about 5.1 million PHP IP addresses. About 1.1 million disclose a version, with roughly 272,000 on 8.2 to 8.5 and roughly 758,000 on end-of-life releases30. VulnCheck counts 2,608,039 PHP hosts. Of those, 1,474,985 advertise a version older than the fixed build and 1,133,054 hide it entirely23.

Loading chart

Figure 4. 2.6 million PHP hosts, and we can read the version on 57 percentVulnCheck Target Intel, 22 October. One square is one percent. Distro backports can keep old version strings.
Show the data
GroupHosts
Advertises a version below the fixed build1,474,985
Hides its version1,133,054
Total2,608,039

The hidden ones worry me most. A server that hides its version cannot be scored from outside, and it is the kind of server that gets forgotten. Distro builds also keep old version strings after they are patched, so an old number does not always mean a vulnerable host31.

The same VulnCheck data names the applications behind the hosts it could identify.

Loading chart

Figure 5. The applications behind the hostsVulnCheck application counts. Circle area is host count.
Show the data
ApplicationHosts
WordPress469,699
Laravel124,866
Joomla26,591
Drupal24,116
Magento3,735
MediaWiki2,116
Symfony2,104
phpBB1,391
WHMCS59

WordPress is the elephant at 469,699 hosts. Laravel is the surprise at number two with 124,86623. VirusTotal puts WordPress nearer 538,00030, so even the application counts depend on the method.

The totals do not line up either. One source says 1.5 million, another says 22.6 million.

Loading chart

Figure 6. Nobody agrees how big this isLog scale, so bar length is not proportional. Colour shows what each source counts.
Show the data
SourceCountCounts
Unit 4222,600,000instances
VirusTotal5,100,000ips
Modat4,384,302services
VulnCheck2,608,039hosts
Shodan1,624,000mixed
Censys1,500,000hosts

They count different things. VirusTotal counts IPs. VulnCheck counts hosts. Modat counts services. Unit 42 counts instances32, and Shodan splits its count between versions33. Pick one unit before you compare any two of these.

How the fix reaches you

Three finders, one security team and a long list of downstream builders. The widths in this diagram are illustrative, but the shape is real.

Loading chart

Figure 7. From finders to fixesLink widths are illustrative, not measured. The structure comes from the PHP Foundation, OpenAI and PHP's advisory.

The patched 8.2 to 8.5 releases fan out fast. Older branches get a backport at best, and 7.3 and older get nothing from upstream. Here is where the main platforms stood on the morning of 22 October. It changes hourly.

PlatformStatus
DebianFixed packages for trixie and bookworm. Forky still vulnerable34.
UbuntuFixes for supported releases and for Ubuntu Pro releases back to 14.04. The fixed 24.04 build is 8.3.6-0ubuntu0.24.04.13, so the number looks old31.
Red HatRated Important. RHEL 8, 9 and 10 and UBI images are affected, with errata partly out15.
AlmaLinuxProduction builds from 21:15 UTC on 21 October. Check with rpm -q, since php -v keeps the upstream number35.
Amazon LinuxAL2023 php8.2 to 8.5 fixed. AL2 core php and AL2023 php8.1 have no fix planned36.
cPanelEasyApache 4 release 25.91 updates ea-php82 to 85 and adds backports for ea-php74, 80 and 8137.
Official Docker imageFixed tags pushed between 18:59 and 22:10 UTC on 21 October. riscv64 lagged38.
Remi repositoryNo update on release day. PHP told users to switch to distro packages or build from source11.
Google CloudApp Engine standard on 8.2 and up patched automatically. Cloud Run needs a rebuild unless automatic base-image updates are on. GKE and App Engine flexible need a redeploy10.
AWS and AzureAWS has a new Elastic Beanstalk platform and a PHP WAF rule group v2.339. Azure Front Door has managed rule 9900600140.
Laravel ForgeAutomatic updates do not patch PHP. Update each version, then restart workers41.

A lot of this was prepared before anyone outside the room could read the advisory. Wiz thanks Automattic, Akamai, AWS, Cloudflare, Fastly, Google, Imperva, Microsoft and Vercel for pre-disclosure work9. OpenAI says it also briefed ONCD and CISA42.

Loading chart

Figure 8. The quiet coalitionEdges show who briefed or worked with whom, as the OpenAI and Wiz posts describe it. Vendor-to-finder links are simplified.

I think that part worked. The part that did not work was keeping it quiet. Vendors, finders and governments held a secret for weeks, then lost it in about a day.

What the governments said

Every agency says to patch now. They split on three things, and the chart shows how. Hotter cells are stronger statements.

Loading chart

Figure 9. What the agencies saidMy coding of the agency statements. Offline is advice to pull the system, 0 none, 1 isolate or consider, 2 take offline. Claim is what it says about exploitation, 0 none given, 1 none observed, 2 aware of reports, 3 widespread attempts. Hunt is whether it tells you to look for compromise, 0 or 1.
Show the data
AgencyOffline adviceExploitation claimHunting advice
ASD ACSC (AU)isolate or considernone observedyes
NCSC (UK)isolate or considernone givenyes
NCSC (NZ)isolate or consideraware of reportsyes
CISA (US)take offlinenone observedno
FBI and NSA (US)take offlinenone givenyes
CERT-EUisolate or considernone givenno
CCCS (CA)isolate or considernone observedyes
BSI (DE)nonenone givenno
NCSC-NLnonenone observedno
JPCERT/CC (JP)nonenone givenyes
CSA (SG)nonewidespread attemptsno

CISA and the FBI say to take the system offline if you cannot update2, 43. The UK's NCSC says to consider it3. NCSC New Zealand is "aware of reports of active exploitation"44, while Canada identified a proof of concept but no active exploitation45 and Singapore reports widespread attempts46. JPCERT/CC warns that attacks may leave no trace in logs17. Some governments acted on their own sites. Wikimedia took tools offline47. The Dutch government pulled several sites5, and in Australia the ABS and Jobs and Skills Australia went offline48, 6.

AI on both sides

Every team that found these bugs says AI helped. Calif used an LLM companion and an agent for source review20. Wiz used its Atlas researcher with Gemini 4 Argon and GPT-5.6 Sol, and says one researcher did in a week what would have taken a world-class team months9. OpenAI says that, to its knowledge, frontier AI found the bugs before attackers did42.

That is a claim about the finders, and it is plausible. I have not found published evidence that attackers used AI on the exploits. watchTowr called the early proof-of-concepts "vibecoded", which is an impression, not forensics49.

The cost shift is what I take from it. The PHP Foundation says its volunteer security team has handled 15 CVEs and more than 100 invalid or duplicate reports since 1 July16. AI finds bugs faster, and open-source maintainers are the ones who triage the pile.

OpenAI also asks a question I want to flag. It asks when governments or operators should use a vulnerability to patch systems they are authorised to manage after losing administrative access. It floats "internet-wide always-on scanning" that either notifies owners or patches the system42. It is a proposal for comment. I would want a clear answer on consent and liability before anyone builds it.

What I would do on day one

  1. Inventory every PHP runtime. Include PHP inside appliances and vendor products. NCSC-NL keeps a cross-vendor list50. Check the version inside each container, and read the package changelog before you trust a version string.
  2. Patch, then restart every worker. The window closes when the worker restarts, not when the package installs51.
  3. If you cannot patch today, take it offline. That is what CISA, NCSC and CERT-EU say2, 3, 4. The alternative is PHP's interim settings, which are session.upload_progress.enabled=0, memory_limit=-1 that apps cannot override, a low post_max_size and a cgroup cap per worker. Skip RLIMIT_AS, which can trigger the vulnerable path. PHP says plainly that none of this makes an installation safe11.
  4. Hunt back to 17 October. Look for "Unknown on line 0" memory errors, Apache's AH00052 crash entries, very large multipart requests, odd PHPSESSID cookies, and shell processes whose parent is the web server or PHP-FPM26, 12. Preserve logs before you upgrade3.
  5. Rotate secrets that passed through PHP memory. That means session keys, framework app keys, WordPress salts, database credentials and upstream API tokens.
  6. Leave the public proof-of-concepts alone. Detection works better from the behaviour side, such as a web server spawning a shell52.

The Australian angle

ASD's ACSC says all PHP versions from 5 onwards may be affected, and that it was not aware of successful exploitation in Australia53. If your PHP host held personal information and you find signs of compromise, the Notifiable Data Breaches scheme applies. You have 30 days to assess whether it is an eligible breach, and if serious harm is likely you notify the OAIC and the people affected54. The memory-disclosure bug makes credentials of users who logged in during the exposure window a realistic category to assess. Other regimes, such as ransomware payment reporting and critical-infrastructure rules, run their own clocks, so check yours.

What is still open

  • Will a public exploit follow VulnCheck's, and will it reach other branches?
  • Has any vendor confirmed a real compromise?
  • How complete is the fix? Researchers on oss-security raised incomplete-fix claims for 8.5.12, and PHP called them unrelated.
  • How exposed are RoadRunner, Swoole and the CLI? I found no source that addresses them.
  • Does PHP-FPM allow a full exploit? The advisory says no complete FPM chain was shown for CVE-2026-109618, while Wiz and the Foundation say FPM was confirmed through application-level code paths7, 16.

References

  1. W3Techs. Usage statistics of PHP as a server-side programming language. 22 October 2026. w3techs.com
  2. CISA. Critical vulnerabilities in PHP require immediate patching. 21 October 2026. cisa.gov
  3. NCSC UK. Critical security issue affecting PHP. 21 October 2026. ncsc.gov.uk
  4. CERT-EU. Security Advisory 2026-018. 21 October 2026. cert.europa.eu
  5. Rijksoverheid. Government sites taken offline preventively. 21 October 2026. rijksoverheid.nl
  6. Information Age (ACS). Government sites go down after AI finds critical PHP vulnerabilities. 22 October 2026. ia.acs.org.au
  7. php/php-src. GHSA-w8hw-w9fx-j79w, RCE via OOM corruption (CVE-2026-109618). github.com
  8. php/php-src. GHSA-6wmf-4rv5-p3rp, RCE via stale global state (CVE-2026-109619). github.com
  9. Wiz Research. PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet. 21 October 2026. wiz.io
  10. Google Cloud. Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619. Updated 22 October 2026. cloud.google.com
  11. PHP Group. Security advisory and interim mitigations. 20 and 21 October 2026. php.net
  12. Amazon Threat Intelligence. PHP2Shell exploitation prior to public disclosure in MadPot. aws.amazon.com
  13. CISA. Known Exploited Vulnerabilities catalog, version 2026.10.21. cisa.gov
  14. NIST NVD. CVE-2026-109618. services.nvd.nist.gov
  15. Red Hat. RHSB-2026-013. 21 October 2026, updated 22 October. access.redhat.com
  16. PHP Foundation. Today's PHP security release and how we're strengthening PHP security. 21 October 2026. thephp.foundation
  17. JPCERT/CC. JPCERT-AT-2026-0033. 22 October 2026. jpcert.or.jp
  18. php/php-src. Commit 31c0ea7, Avoid state corruption via bailout. Authored 18 October 2026. github.com
  19. php/php-src. Issue 24492, hard OOM exit regression. 21 October 2026. github.com
  20. Calif. PHP2Shell. 21 October 2026. calif.io
  21. Quarkslab for OSTIF and the PHP Foundation. PHP security audit report 24-07-1730-REP v1.4. 14 March 2025. thephp.foundation
  22. ELLIO. PHP2Shell: what we observed and what to do. ellio.tech
  23. VulnCheck. PHP2Shell vulnerabilities: CVE-2026-109618 and CVE-2026-109619. Updated 22 October 2026. vulncheck.com
  24. Arctic Wolf. PHP2Shell: critical PHP vulnerabilities enable unauthenticated remote code execution. 22 October 2026. arcticwolf.com
  25. watchTowr. PHP remote code execution (PHP2Shell). 21 October 2026. watchtowr.com
  26. Bitdefender. Technical advisory: PHP2Shell pre-auth RCE. 22 October 2026. bitdefender.com
  27. Tanium. PHP2Shell: responding to CVE-2026-109618 and CVE-2026-109619. tanium.com
  28. CrowdStrike. CrowdStrike protects customers from PHP RCE zero-days. 21 October 2026. crowdstrike.com
  29. MITRE. ATT&CK Enterprise matrix. attack.mitre.org
  30. VirusTotal. Sizing the PHP exposure window for CVE-2026-109618 and CVE-2026-109619. October 2026. blog.virustotal.com
  31. Ubuntu. PHP2Shell vulnerability fixes available. 21 October 2026. ubuntu.com
  32. Palo Alto Networks Unit 42. Threat brief on CVE-2026-109618 and CVE-2026-109619. 21 October 2026. unit42.paloaltonetworks.com
  33. SOCRadar. PHP2Shell CVE-2026-109618 and 109619: affected versions and fix. socradar.io
  34. Debian security tracker. CVE-2026-109618. security-tracker.debian.org
  35. AlmaLinux. PHP2Shell blog post. 21 October 2026. almalinux.org
  36. Amazon Linux Security Center. CVE-2026-109618. explore.alas.aws.amazon.com
  37. cPanel. EasyApache 4 change log, release 25.91. 21 October 2026. docs.cpanel.net
  38. Docker Hub. Official php image tags. hub.docker.com
  39. AWS. Security Bulletin 2026-143-AWS. 21 October 2026. aws.amazon.com
  40. Microsoft. Addressing PHP2Shell: upgrade guidance and Azure WAF. 21 October 2026. techcommunity.microsoft.com
  41. Laravel Forge. PHP security release, October 2026. laravel.com
  42. OpenAI. Patch the Planet: global response coordination as agents uncover critical vulnerabilities. 21 October 2026. openai.com
  43. Newsweek. FBI issues advice as security issue hits global websites. Relays the FBI and NSA posts. newsweek.com
  44. NCSC NZ. CVE-2026-109618 and CVE-2026-109619 affecting PHP. 22 October 2026. ncsc.govt.nz
  45. Canadian Centre for Cyber Security. AL26-026. 21 October 2026. cyber.gc.ca
  46. CSA Singapore. Alert AL-2026-151. 21 October 2026. csa.gov.sg
  47. Wikimedia Diff. Impact of PHP vulnerabilities on Wikimedia tools and services. 21 October 2026. diff.wikimedia.org
  48. ABC News. PHP vulnerabilities and ASD. 22 October 2026. abc.net.au
  49. The Register. PHP devs publish critical bug fix as site owners warned to pull them offline if unpatched. 21 October 2026. theregister.com
  50. NCSC-NL. php2shell repository: detection, mitigation and product inventory. github.com
  51. Safeguard. After PHP2Shell: check if you are already compromised. 22 October 2026. safeguard.sh
  52. Elastic Security Labs. PHP2Shell detection coverage. elastic.co
  53. ASD's ACSC. Critical vulnerabilities in PHP. 21 October 2026, reviewed 22 October. cyber.gov.au
  54. OAIC. About the Notifiable Data Breaches scheme. oaic.gov.au

Topics: PHP2Shell, CVE-2026-109618, CVE-2026-109619, PHP vulnerability, PHP remote code execution, PHP RCE, PHP security update, PHP 8.5.12, PHP 8.4.27, PHP 8.3.36, PHP 8.2.35, mod_php, PHP-FPM, zend_bailout, session upload progress, MITRE ATT&CK T1190, incident response, vulnerability management, unauthenticated RCE, AI vulnerability discovery