Find the PHP fingerprint.
Read the Server and X-Powered-By response headers. If the server advertises a PHP version, compare it with the fixed upstream releases.
See which PHP version your website advertises, whether it is affected by PHP2Shell, and exactly what to update.
Vulnerable paths can run before your application code.
Paste a page address. In a few seconds you will see the PHP version it advertises and what to do next.
Version evidence cannot independently verify a patch or certify a server as safe.
A focused external check of the URL you provide, with the limits made clear at every step.
Read the Server and X-Powered-By response headers. If the server advertises a PHP version, compare it with the fixed upstream releases.
Compare the advertised version with the last vulnerable release for its PHP branch. The check uses HEAD and falls back to GET only if HEAD is unsupported.
Get an OK, VULNERABLE, or UNKNOWN result with version evidence and a practical next step. Hidden headers or unknown versions leave patch status unconfirmed.
Upgrade every web-serving PHP runtime and restart its workers. These are the first fixed upstream releases for the supported branches.
Read PHP's security advisory| Branch | First fixed release | Status |
|---|---|---|
| PHP 8.5 | 8.5.12 | PATCH AVAILABLE |
| PHP 8.4 | 8.4.27 | PATCH AVAILABLE |
| PHP 8.3 | 8.3.36 | PATCH AVAILABLE |
| PHP 8.2 | 8.2.35 | PATCH AVAILABLE |
Vendor backports may retain an older version number. Verify your package advisory. For PHP 8.1 and older, consult your vendor or upgrade to a supported branch.
OK: the PHP version your site advertises is newer than the last vulnerable release for its branch. VULNERABLE: the advertised version is at or below that release, so update it. UNKNOWN: your site does not advertise a PHP version this check recognizes, because the headers are hidden, the address redirects, or it runs a development build or another branch, so the check cannot tell.
No. Headers can be hidden or inaccurate, and vendor packages may backport fixes. This check does not test whether either CVE is exploitable. Verify the PHP package running in every web worker against the upstream or vendor advisory.
The checker sends a HEAD request. It falls back to GET only for HTTP 405 or 501. It sends no form payloads, follows no redirects, and does not attempt exploitation. Only check systems you own or are authorized to assess.
If no usable PHP version is exposed, the result is UNKNOWN. A firewall response does not establish that PHP behind it is patched. Redirects are not followed: submit the final PHP URL for the most useful result.
Your email, with the hostname, result, and time of each check you run, is kept for up to 12 months to record who ran it and to follow up on abuse. Addresses are not verified. HOG3 sends updates only if you tick the optional box and then confirm your address from a confirmation email.
A check log records the client IP, target hostname, result, and timestamp; the hosted checker keeps it for up to seven days. Full paths and query strings are not written to that log.
Results are kept for at most an hour; the hosted checker at php2shell.hog3.com returns them without storing them. The report you download includes the full address you checked, so avoid secrets in submitted URLs.
No. PHP states that only updating provides a complete fix. Configuration measures reduce exposure to particular paths. Follow the current PHP advisory, apply the security update, and restart the affected workers.
Keep testing the rest of your attack surface with HOG3.