Is your server exposed to PHP2Shell?
On 21 October 2026, PHP patched two critical flaws — CVE-2026-109618 and CVE-2026-109619, together nicknamed PHP2Shell — that let an unauthenticated attacker run code on a web server. Exploitation is already being seen in the wild. Enter a domain for a free, read-only check of whether it is running a PHP version below the patched baseline.
Check a domain
We make one ordinary web request to the domain and read the version its server reports in response headers — the same information any browser receives. We do not send an exploit, a payload or an upload. A server that hides its version returns an inconclusive result, not a clean bill of health.
Two flaws, one unauthenticated path to code execution.
Both carry a CVSS 4.0 score of 9.2. They sit in PHP core, so any application on an affected version is in scope — not just a single framework or plugin.
CVE-2026-109618 — RCE via memory corruption
PHP's out-of-memory handling can abandon a request while its memory is only partly initialised, and request shutdown then treats that state as valid — a path to remote code execution. Interim mitigation: a per-worker cgroup memory limit.
CVE-2026-109619 — RCE via stale global state
PHP can retain request-owned state after the memory behind it is freed; a later request on the same worker consumes it. Interim mitigation: set session.upload_progress.enabled = Off.
Sources differ on which CVE covers the session.upload_progress vector. Confirm against PHP's official advisories (GHSA-w8hw-w9fx-j79w and GHSA-6wmf-4rv5-p3rp) before relying on either interim mitigation. The patched releases close both regardless.
Read-only by design.
A responsible exposure check never attacks the thing it is checking. Here is exactly what happens when you press the button.
One normal request
We request the home page over HTTPS, exactly as a browser would. No crafted input, no upload, nothing that touches the vulnerability.
Read the version
We read the Server and X-Powered-By headers for a disclosed PHP version. Most well-configured servers hide it — and that is reported honestly as inconclusive.
Compare to the baseline
Any disclosed version is compared against the first patched release on its branch. Below it, or on an end-of-life branch, is flagged as likely exposed.
Email the result
You get the finding by email, with the fixed versions and next steps. If you want a hand, a specialist can scope remediation or a full VAPT.
About the check
Found something? Don't patch blind.
If the check flags exposure — or if your version is hidden and you want certainty — our team can confirm the running build, apply the fix without breaking the application, and check the rest of your estate for the same gap.