Guide · 6 min read

What to ask your host or developer after PHP2Shell: a copy-ready email and checklist

The short answer

If someone else runs your server, don’t ask “are we OK?” Ask questions that can only be answered with specifics:

Then ask about signs of compromise since October 17, staging copies, and the plan for PHP 8.2’s end of life on December 31, 2026 (source: BleepingComputer; php.net supported versions). Ask for the answer in writing, with dates, and keep it. The email below covers all of it.

Who should you ask?

It depends on who manages the PHP runtime, and that isn’t always the company you pay for hosting.

The email

Copy it, fill in the brackets, and send one email per site. Delete question 6 if you know there’s no firewall or CDN in front of the site.

Subject: PHP2Shell (CVE-2026-109618 / CVE-2026-109619): please confirm our PHP status in writing

Hello [name],

Following the PHP security releases of 21 October 2026, please confirm
in writing, with dates, for [your-domain.com]:

1. Is the PHP that serves our site managed by you or by us?
2. Which PHP version and build serves the site (not just the command
   line), and how does it run: PHP-FPM, Apache mod_php or LiteSpeed?
3. Does that build include the fixes for CVE-2026-109618 and
   CVE-2026-109619? If it's a backport, which vendor or package version,
   and when was it applied?
4. Were PHP's worker processes restarted after the update? When?
5. Has session upload progress been turned off at server level (php.ini,
   the PHP-FPM pool or the server configuration) for CVE-2026-115560, as
   PHP recommends?
6. Is there a firewall or CDN rule in front of the site, and can traffic
   reach the server without passing through it?
7. Have you reviewed the server for signs of compromise since
   17 October? Should we rotate passwords or API keys stored on it?
8. Are staging, development and old copies of our site covered too?
9. What is the plan and date to move us to PHP 8.4 or 8.5 before
   PHP 8.2 reaches end of life on 31 December 2026?

Thank you,
[your name]

What a good answer looks like

Question Why it matters A good answer Follow up if…
1. Who manages PHP Self-managed servers don’t get patched for you (source: GoDaddy) “We do, for your plan”, or “You do: it’s a VPS” The answer is vague. Then nobody may be doing it
2. Build and how it runs The command-line php -v may not be the PHP that serves your website (source: AlmaLinux); Apache mod_php is rated the highest-risk setup (source: Beazley Security Labs) A full build string for the web PHP, plus PHP-FPM, mod_php or LiteSpeed You get a php -v screenshot
3. Fix included Many hosts and distributions ship the fix as a backport that keeps the old version number (source: AlmaLinux) 8.5.12, 8.4.27, 8.3.36 or 8.2.35 or later (source: php.net release archive), or a named backport package whose changelog cites both CVEs “We’re on the latest version”, with no build and no date
4. Restart A patched package isn’t running until PHP’s worker processes restart (source: AlmaLinux) A date and time after the update “Not needed”
5. CVE-2026-115560 setting No PHP release fixes it as of October 23, 2026; PHP recommends this setting in server-level configuration, then a restart (source: php.net advisory on CVE-2026-115560, October 23, 2026) “Set in php.ini (or the pool) on [date]; workers restarted” They set it in application code or .user.ini, which doesn’t count (source: php.net advisory on CVE-2026-115560, October 23, 2026)
6. Firewall and bypass Firewalls buy time but don’t replace the patch (source: Beazley Security Labs); Cloudflare’s rules only cover traffic that passes through Cloudflare (source: Cloudflare) A named rule set, plus “the origin only accepts traffic from the firewall” “We have a firewall, so we don’t need to patch”
7. Signs of compromise Attempts started on October 17, four days before the patches (source: BleepingComputer); one flaw can leak secrets from memory (source: The Hacker News) What was checked, from which date, and what was found “Nothing in the logs”. PHP’s advisory warns that “absence of an error in logs is not proof of safety.” (source: GHSA-6wmf-4rv5-p3rp (CVE-2026-109619))
8. Other copies Old and staging copies run PHP too A list of every copy, each with its status “Just the live site”
9. Upgrade plan PHP 8.2 stops receiving security fixes on December 31, 2026; 8.4 gets fixes until December 31, 2028 and 8.5 until December 31, 2029 (source: php.net supported versions) A target version and a date “We’ll look at it next year”

Red flags in the reply

What to do with the answers

  1. Keep the reply, dated, together with any status page you rely on. Status pages change.
  2. Fill the gaps. If an answer is missing or vague, send that one question again. Don’t accept “it’s fine”.
  3. Act on what you learn. If nobody manages PHP on your server, start with our guide for business owners. If you need proof you can show someone else, the guide to proving a patch explains the evidence that counts.
  4. File it. If your insurer or a customer asks later, a dated written answer is the record you’ll want. What evidence to keep.

Has anyone actually been hacked through PHP2Shell? As of October 23, 2026, security firms and governments had reported widespread exploitation attempts but no publicly confirmed successful compromise. The one exception: Palo Alto Networks’ Unit 42 reported a compromise at one European government entity, which hadn’t been independently corroborated (source: Beazley Security Labs). The point of the email isn’t alarm. It’s knowing where you stand, in writing.

Sourced facts

Full wording, primary sources and dates: /sources.

ID Fact Primary source Date
S-01 Two PHP engine flaws; rated 9.2 by PHP’s security team php.net Oct 20–21, 2026
S-02 Fixed in 8.5.12, 8.4.27, 8.3.36, 8.2.35 php.net Oct 21, 2026
S-02b CVE-2026-115560 unfixed; server-level setting, then a restart php.net Oct 23, 2026 · LIVE
S-03 No official fix for 8.1 and older Beazley Oct 21–23, 2026
S-04 / S-04b mod_php highest risk; memory leak may expose secrets Beazley · The Hacker News Oct 21–23, 2026
S-05b Named hosts reported patching managed plans; self-managed servers must patch themselves Hostinger · WP Engine · GoDaddy Oct 21–23, 2026 · LIVE
S-06b First attempts Oct 17 (Amazon) BleepingComputer Reported Oct 22, 2026
S-07 No confirmed compromise except one Unit 42 report Unit 42 Oct 23, 2026 · LIVE
S-09 A version number can’t prove a patch AlmaLinux · Red Hat Oct 21, 2026
S-10 / S-10c Firewalls don’t replace the patch; Cloudflare scope Beazley · Cloudflare Oct 21–23, 2026
S-32 / S-32b 8.2 ends Dec 31, 2026; 8.4 2028; 8.5 2029 php.net Checked Oct 23, 2026
S-36 WordPress updates don’t change PHP WordPress.org Oct 23, 2026
Q-11 “absence of an error in logs is not proof of safety.” GHSA-6wmf-4rv5-p3rp Oct 21, 2026

Frequently asked questions

Should I send this email if I’m on managed WordPress hosting?

Yes. Many shared and managed hosts reported patching PHP on their managed plans (source: GoDaddy), and a written reply for your own account turns that general statement into a record you can keep.

My developer says everything is up to date. What should I ask next?

Ask for specifics: the build that serves the site, the package changelog or advisory that names both CVEs, the time PHP was restarted, and where the CVE-2026-115560 setting was applied (source: AlmaLinux; php.net advisory on CVE-2026-115560, October 23, 2026). “Up to date” can mean WordPress, which doesn’t change PHP (source: WordPress.org version statistics).

What if my host won’t answer in writing?

Write down who you spoke to, when, and what they said, then send a short email summarising the call and asking them to correct anything wrong. If the questions about your own server still go unanswered, that tells you something about who is responsible for patching it (source: GoDaddy).

Can my agency answer this for all of our sites at once?

Yes, as one table with a row per site and the same columns as the questions. Our agency triage guide shows a format agencies can use for every client.

Rather have us check the answers?

  • Patch Verification & Compromise Review. Your developer or host gives us read-only access: a dedicated login that can look but not change anything, shared through a secure link, never by email. We change nothing on your server. We find the answers to questions 1–8 ourselves, and you get a plain-English report: where each fix stands, as of a stated time, plus a compromise review from October 17, signed by the Approver of Record. Where we find no indicators, the report says “No evidence of compromise found in the checks listed” and lists those checks. Ask for it

Your website, accounted for.

Want a signed answer instead?

A Patch Verification gives you per-CVE status for every PHP runtime on the server, and a compromise review, in 1 business day.

$590 per server, includes 1 site.

See all services and prices

Sources

Every figure and quotation on this guide links to its primary source. All of them, with the date we last checked each: full wording and methods.

Primary sources for this guide